Lines Matching refs:dir

24 static struct buffer_head *omfs_get_bucket(struct inode *dir,  in omfs_get_bucket()  argument
27 int nbuckets = (dir->i_size - OMFS_DIR_START)/8; in omfs_get_bucket()
31 return omfs_bread(dir->i_sb, dir->i_ino); in omfs_get_bucket()
34 static struct buffer_head *omfs_scan_list(struct inode *dir, u64 block, in omfs_scan_list() argument
44 bh = omfs_bread(dir->i_sb, block); in omfs_scan_list()
51 if (omfs_is_bad(OMFS_SB(dir->i_sb), &oi->i_head, block)) { in omfs_scan_list()
67 static struct buffer_head *omfs_find_entry(struct inode *dir, in omfs_find_entry() argument
74 bh = omfs_get_bucket(dir, name, namelen, &ofs); in omfs_find_entry()
81 return omfs_scan_list(dir, block, name, namelen, &dummy); in omfs_find_entry()
113 struct inode *dir = d_inode(dentry->d_parent); in omfs_add_link() local
123 bh = omfs_get_bucket(dir, name, namelen, &ofs); in omfs_add_link()
134 bh = omfs_bread(dir->i_sb, inode->i_ino); in omfs_add_link()
142 oi->i_parent = cpu_to_be64(dir->i_ino); in omfs_add_link()
146 inode_set_ctime_current(dir); in omfs_add_link()
149 mark_inode_dirty(dir); in omfs_add_link()
158 struct inode *dir = d_inode(dentry->d_parent); in omfs_delete_entry() local
170 bh = omfs_get_bucket(dir, name, namelen, &ofs); in omfs_delete_entry()
177 bh2 = omfs_scan_list(dir, block, name, namelen, &prev); in omfs_delete_entry()
190 bh = omfs_bread(dir->i_sb, prev); in omfs_delete_entry()
202 dirty = omfs_iget(dir->i_sb, prev); in omfs_delete_entry()
238 static int omfs_remove(struct inode *dir, struct dentry *dentry) in omfs_remove() argument
254 mark_inode_dirty(dir); in omfs_remove()
258 static int omfs_add_node(struct inode *dir, struct dentry *dentry, umode_t mode) in omfs_add_node() argument
261 struct inode *inode = omfs_new_inode(dir, mode); in omfs_add_node()
266 err = omfs_make_empty(inode, dir->i_sb); in omfs_add_node()
282 static int omfs_mkdir(struct mnt_idmap *idmap, struct inode *dir, in omfs_mkdir() argument
285 return omfs_add_node(dir, dentry, mode | S_IFDIR); in omfs_mkdir()
288 static int omfs_create(struct mnt_idmap *idmap, struct inode *dir, in omfs_create() argument
291 return omfs_add_node(dir, dentry, mode | S_IFREG); in omfs_create()
294 static struct dentry *omfs_lookup(struct inode *dir, struct dentry *dentry, in omfs_lookup() argument
303 bh = omfs_find_entry(dir, dentry->d_name.name, dentry->d_name.len); in omfs_lookup()
308 inode = omfs_iget(dir->i_sb, ino); in omfs_lookup()
330 static bool omfs_fill_chain(struct inode *dir, struct dir_context *ctx, in omfs_fill_chain() argument
335 struct buffer_head *bh = omfs_bread(dir->i_sb, fsblock); in omfs_fill_chain()
344 if (omfs_is_bad(OMFS_SB(dir->i_sb), &oi->i_head, fsblock)) { in omfs_fill_chain()
410 struct inode *dir = file_inode(file); in omfs_readdir() local
425 nbuckets = (dir->i_size - OMFS_DIR_START) / 8; in omfs_readdir()
431 bh = omfs_bread(dir->i_sb, dir->i_ino); in omfs_readdir()
439 if (!omfs_fill_chain(dir, ctx, fsblock, hindex)) in omfs_readdir()