Lines Matching full:cell

13 #define AFS_MIN_DYNROOT_CELL_INO 4 /* Allow for ., .., @cell, .@cell */
96 struct afs_cell *cell = NULL; in afs_dynroot_lookup_cell() local
111 cell = afs_lookup_cell(net, name, len, NULL, false, in afs_dynroot_lookup_cell()
113 if (IS_ERR(cell)) { in afs_dynroot_lookup_cell()
114 ret = PTR_ERR(cell); in afs_dynroot_lookup_cell()
118 inode = afs_iget_pseudo_dir(dir->i_sb, cell->dynroot_ino * 2 + dotted); in afs_dynroot_lookup_cell()
124 dentry->d_fsdata = cell; in afs_dynroot_lookup_cell()
128 afs_unuse_cell(cell, afs_cell_trace_unuse_lookup_dynroot); in afs_dynroot_lookup_cell()
152 memcmp(dentry->d_name.name, "@cell", 5) == 0) in afs_dynroot_lookup()
156 memcmp(dentry->d_name.name, ".@cell", 6) == 0) in afs_dynroot_lookup()
168 struct afs_cell *cell = dentry->d_fsdata; in afs_dynroot_d_release() local
170 afs_unuse_cell(cell, afs_cell_trace_unuse_dynroot_mntpt); in afs_dynroot_d_release()
174 * Keep @cell symlink dentries around, but only keep cell autodirs when they're
181 if (name->len == 5 && memcmp(name->name, "@cell", 5) == 0) in afs_dynroot_delete_dentry()
183 if (name->len == 6 && memcmp(name->name, ".@cell", 6) == 0) in afs_dynroot_delete_dentry()
196 struct afs_cell *cell = arg; in afs_atcell_delayed_put_cell() local
198 afs_put_cell(cell, afs_cell_trace_put_atcell); in afs_atcell_delayed_put_cell()
202 * Read @cell or .@cell symlinks.
208 struct afs_cell *cell; in afs_atcell_get_link() local
218 cell = rcu_dereference(net->ws_cell); in afs_atcell_get_link()
220 name = cell->name - 1; in afs_atcell_get_link()
222 name = cell->name; in afs_atcell_get_link()
229 cell = rcu_dereference_protected(net->ws_cell, lockdep_is_held(&net->cells_lock)); in afs_atcell_get_link()
231 name = cell->name - 1; in afs_atcell_get_link()
233 name = cell->name; in afs_atcell_get_link()
234 afs_get_cell(cell, afs_cell_trace_get_atcell); in afs_atcell_get_link()
235 set_delayed_call(done, afs_atcell_delayed_put_cell, cell); in afs_atcell_get_link()
246 * Create an inode for the @cell or .@cell symlinks.
280 * Transcribe the cell database into readdir content under the RCU read lock.
281 * Each cell produces two entries, one prefixed with a dot and one not.
285 const struct afs_cell *cell; in afs_dynroot_readdir_cells() local
293 cell = idr_get_next(&net->cells_dyn_ino, &ix); in afs_dynroot_readdir_cells()
294 if (!cell) in afs_dynroot_readdir_cells()
296 if (READ_ONCE(cell->state) == AFS_CELL_REMOVING || in afs_dynroot_readdir_cells()
297 READ_ONCE(cell->state) == AFS_CELL_DEAD) { in afs_dynroot_readdir_cells()
307 _debug("pos %llu -> cell %u", ctx->pos, cell->dynroot_ino); in afs_dynroot_readdir_cells()
310 if (!dir_emit(ctx, cell->name, cell->name_len, in afs_dynroot_readdir_cells()
311 cell->dynroot_ino, DT_DIR)) in afs_dynroot_readdir_cells()
316 if (!dir_emit(ctx, cell->name - 1, cell->name_len + 1, in afs_dynroot_readdir_cells()
317 cell->dynroot_ino + 1, DT_DIR)) in afs_dynroot_readdir_cells()
327 * dotted and undotted, along with @cell and .@cell links if configured.
339 !dir_emit(ctx, "@cell", 5, 2, DT_LNK)) in afs_dynroot_readdir()
345 !dir_emit(ctx, ".@cell", 6, 3, DT_LNK)) in afs_dynroot_readdir()