Lines Matching refs:dir
12 static void hpfs_update_directory_times(struct inode *dir) in hpfs_update_directory_times() argument
14 time64_t t = local_to_gmt(dir->i_sb, local_get_seconds(dir->i_sb)); in hpfs_update_directory_times()
15 if (t == dir->i_mtime.tv_sec && in hpfs_update_directory_times()
16 t == dir->i_ctime.tv_sec) in hpfs_update_directory_times()
18 dir->i_mtime.tv_sec = dir->i_ctime.tv_sec = t; in hpfs_update_directory_times()
19 dir->i_mtime.tv_nsec = dir->i_ctime.tv_nsec = 0; in hpfs_update_directory_times()
20 hpfs_write_inode_nolock(dir); in hpfs_update_directory_times()
23 static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in hpfs_mkdir() argument
39 hpfs_lock(dir->i_sb); in hpfs_mkdir()
41 fnode = hpfs_alloc_fnode(dir->i_sb, hpfs_i(dir)->i_dno, &fno, &bh); in hpfs_mkdir()
44 dnode = hpfs_alloc_dnode(dir->i_sb, fno, &dno, &qbh0); in hpfs_mkdir()
53 dee.creation_date = dee.write_date = dee.read_date = cpu_to_le32(local_get_seconds(dir->i_sb)); in hpfs_mkdir()
54 result = new_inode(dir->i_sb); in hpfs_mkdir()
59 hpfs_i(result)->i_parent_dir = dir->i_ino; in hpfs_mkdir()
61 …result->i_ctime.tv_sec = result->i_mtime.tv_sec = result->i_atime.tv_sec = local_to_gmt(dir->i_sb,… in hpfs_mkdir()
75 r = hpfs_add_dirent(dir, name, len, &dee); in hpfs_mkdir()
84 fnode->up = cpu_to_le32(dir->i_ino); in hpfs_mkdir()
93 de = hpfs_add_de(dir->i_sb, dnode, "\001\001", 2, 0); in hpfs_mkdir()
94 de->creation_date = de->write_date = de->read_date = cpu_to_le32(local_get_seconds(dir->i_sb)); in hpfs_mkdir()
103 inc_nlink(dir); in hpfs_mkdir()
114 hpfs_update_directory_times(dir); in hpfs_mkdir()
116 hpfs_unlock(dir->i_sb); in hpfs_mkdir()
122 hpfs_free_dnode(dir->i_sb, dno); in hpfs_mkdir()
125 hpfs_free_sectors(dir->i_sb, fno, 1); in hpfs_mkdir()
127 hpfs_unlock(dir->i_sb); in hpfs_mkdir()
131 static int hpfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, bool excl) in hpfs_create() argument
144 hpfs_lock(dir->i_sb); in hpfs_create()
146 fnode = hpfs_alloc_fnode(dir->i_sb, hpfs_i(dir)->i_dno, &fno, &bh); in hpfs_create()
154 dee.creation_date = dee.write_date = dee.read_date = cpu_to_le32(local_get_seconds(dir->i_sb)); in hpfs_create()
156 result = new_inode(dir->i_sb); in hpfs_create()
167 hpfs_i(result)->i_parent_dir = dir->i_ino; in hpfs_create()
168 …result->i_ctime.tv_sec = result->i_mtime.tv_sec = result->i_atime.tv_sec = local_to_gmt(dir->i_sb,… in hpfs_create()
180 r = hpfs_add_dirent(dir, name, len, &dee); in hpfs_create()
189 fnode->up = cpu_to_le32(dir->i_ino); in hpfs_create()
203 hpfs_update_directory_times(dir); in hpfs_create()
205 hpfs_unlock(dir->i_sb); in hpfs_create()
212 hpfs_free_sectors(dir->i_sb, fno, 1); in hpfs_create()
214 hpfs_unlock(dir->i_sb); in hpfs_create()
218 static int hpfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rdev) in hpfs_mknod() argument
230 if (hpfs_sb(dir->i_sb)->sb_eas < 2) return -EPERM; in hpfs_mknod()
231 hpfs_lock(dir->i_sb); in hpfs_mknod()
233 fnode = hpfs_alloc_fnode(dir->i_sb, hpfs_i(dir)->i_dno, &fno, &bh); in hpfs_mknod()
241 dee.creation_date = dee.write_date = dee.read_date = cpu_to_le32(local_get_seconds(dir->i_sb)); in hpfs_mknod()
243 result = new_inode(dir->i_sb); in hpfs_mknod()
249 hpfs_i(result)->i_parent_dir = dir->i_ino; in hpfs_mknod()
250 …result->i_ctime.tv_sec = result->i_mtime.tv_sec = result->i_atime.tv_sec = local_to_gmt(dir->i_sb,… in hpfs_mknod()
262 r = hpfs_add_dirent(dir, name, len, &dee); in hpfs_mknod()
271 fnode->up = cpu_to_le32(dir->i_ino); in hpfs_mknod()
277 hpfs_update_directory_times(dir); in hpfs_mknod()
280 hpfs_unlock(dir->i_sb); in hpfs_mknod()
286 hpfs_free_sectors(dir->i_sb, fno, 1); in hpfs_mknod()
288 hpfs_unlock(dir->i_sb); in hpfs_mknod()
292 static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *symlink) in hpfs_symlink() argument
304 hpfs_lock(dir->i_sb); in hpfs_symlink()
305 if (hpfs_sb(dir->i_sb)->sb_eas < 2) { in hpfs_symlink()
306 hpfs_unlock(dir->i_sb); in hpfs_symlink()
310 fnode = hpfs_alloc_fnode(dir->i_sb, hpfs_i(dir)->i_dno, &fno, &bh); in hpfs_symlink()
317 dee.creation_date = dee.write_date = dee.read_date = cpu_to_le32(local_get_seconds(dir->i_sb)); in hpfs_symlink()
319 result = new_inode(dir->i_sb); in hpfs_symlink()
324 hpfs_i(result)->i_parent_dir = dir->i_ino; in hpfs_symlink()
325 …result->i_ctime.tv_sec = result->i_mtime.tv_sec = result->i_atime.tv_sec = local_to_gmt(dir->i_sb,… in hpfs_symlink()
340 r = hpfs_add_dirent(dir, name, len, &dee); in hpfs_symlink()
349 fnode->up = cpu_to_le32(dir->i_ino); in hpfs_symlink()
357 hpfs_update_directory_times(dir); in hpfs_symlink()
359 hpfs_unlock(dir->i_sb); in hpfs_symlink()
365 hpfs_free_sectors(dir->i_sb, fno, 1); in hpfs_symlink()
367 hpfs_unlock(dir->i_sb); in hpfs_symlink()
371 static int hpfs_unlink(struct inode *dir, struct dentry *dentry) in hpfs_unlink() argument
382 hpfs_lock(dir->i_sb); in hpfs_unlink()
386 de = map_dirent(dir, hpfs_i(dir)->i_dno, name, len, &dno, &qbh); in hpfs_unlink()
398 r = hpfs_remove_dirent(dir, dno, de, &qbh, 1); in hpfs_unlink()
401 hpfs_error(dir->i_sb, "there was error when removing dirent"); in hpfs_unlink()
417 hpfs_update_directory_times(dir); in hpfs_unlink()
418 hpfs_unlock(dir->i_sb); in hpfs_unlink()
422 static int hpfs_rmdir(struct inode *dir, struct dentry *dentry) in hpfs_rmdir() argument
435 hpfs_lock(dir->i_sb); in hpfs_rmdir()
437 de = map_dirent(dir, hpfs_i(dir)->i_dno, name, len, &dno, &qbh); in hpfs_rmdir()
449 hpfs_count_dnodes(dir->i_sb, hpfs_i(inode)->i_dno, NULL, NULL, &n_items); in hpfs_rmdir()
454 r = hpfs_remove_dirent(dir, dno, de, &qbh, 1); in hpfs_rmdir()
457 hpfs_error(dir->i_sb, "there was error when removing dirent"); in hpfs_rmdir()
464 drop_nlink(dir); in hpfs_rmdir()
473 hpfs_update_directory_times(dir); in hpfs_rmdir()
474 hpfs_unlock(dir->i_sb); in hpfs_rmdir()