Lines Matching refs:dir

119 static int msdos_find(struct inode *dir, const unsigned char *name, int len,  in msdos_find()  argument
122 struct msdos_sb_info *sbi = MSDOS_SB(dir->i_sb); in msdos_find()
130 err = fat_scan(dir, msdos_name, sinfo); in msdos_find()
201 static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry, in msdos_lookup() argument
204 struct super_block *sb = dir->i_sb; in msdos_lookup()
210 err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); in msdos_lookup()
227 static int msdos_add_entry(struct inode *dir, const unsigned char *name, in msdos_add_entry() argument
231 struct msdos_sb_info *sbi = MSDOS_SB(dir->i_sb); in msdos_add_entry()
250 err = fat_add_entries(dir, &de, 1, sinfo); in msdos_add_entry()
254 fat_truncate_time(dir, ts, S_CTIME|S_MTIME); in msdos_add_entry()
255 if (IS_DIRSYNC(dir)) in msdos_add_entry()
256 (void)fat_sync_inode(dir); in msdos_add_entry()
258 mark_inode_dirty(dir); in msdos_add_entry()
264 static int msdos_create(struct mnt_idmap *idmap, struct inode *dir, in msdos_create() argument
267 struct super_block *sb = dir->i_sb; in msdos_create()
282 if (!fat_scan(dir, msdos_name, &sinfo)) { in msdos_create()
288 ts = current_time(dir); in msdos_create()
289 err = msdos_add_entry(dir, msdos_name, 0, is_hid, 0, &ts, &sinfo); in msdos_create()
305 err = fat_flush_inodes(sb, dir, inode); in msdos_create()
310 static int msdos_rmdir(struct inode *dir, struct dentry *dentry) in msdos_rmdir() argument
312 struct super_block *sb = dir->i_sb; in msdos_rmdir()
321 err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); in msdos_rmdir()
325 err = fat_remove_entries(dir, &sinfo); /* and releases bh */ in msdos_rmdir()
328 drop_nlink(dir); in msdos_rmdir()
336 err = fat_flush_inodes(sb, dir, inode); in msdos_rmdir()
342 static int msdos_mkdir(struct mnt_idmap *idmap, struct inode *dir, in msdos_mkdir() argument
345 struct super_block *sb = dir->i_sb; in msdos_mkdir()
360 if (!fat_scan(dir, msdos_name, &sinfo)) { in msdos_mkdir()
366 ts = current_time(dir); in msdos_mkdir()
367 cluster = fat_alloc_new_dir(dir, &ts); in msdos_mkdir()
372 err = msdos_add_entry(dir, msdos_name, 1, is_hid, cluster, &ts, &sinfo); in msdos_mkdir()
375 inc_nlink(dir); in msdos_mkdir()
391 fat_flush_inodes(sb, dir, inode); in msdos_mkdir()
395 fat_free_clusters(dir, cluster); in msdos_mkdir()
402 static int msdos_unlink(struct inode *dir, struct dentry *dentry) in msdos_unlink() argument
410 err = msdos_find(dir, dentry->d_name.name, dentry->d_name.len, &sinfo); in msdos_unlink()
414 err = fat_remove_entries(dir, &sinfo); /* and releases bh */ in msdos_unlink()
423 err = fat_flush_inodes(sb, dir, inode); in msdos_unlink()