Lines Matching refs:dir

70 static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inode *dir, struct rpc_cred *…  in alloc_nfs_open_dir_context()  argument
72 struct nfs_inode *nfsi = NFS_I(dir); in alloc_nfs_open_dir_context()
81 spin_lock(&dir->i_lock); in alloc_nfs_open_dir_context()
83 spin_unlock(&dir->i_lock); in alloc_nfs_open_dir_context()
89 static void put_nfs_open_dir_context(struct inode *dir, struct nfs_open_dir_context *ctx) in put_nfs_open_dir_context() argument
91 spin_lock(&dir->i_lock); in put_nfs_open_dir_context()
93 spin_unlock(&dir->i_lock); in put_nfs_open_dir_context()
431 bool nfs_use_readdirplus(struct inode *dir, struct dir_context *ctx) in nfs_use_readdirplus() argument
433 if (!nfs_server_capable(dir, NFS_CAP_READDIRPLUS)) in nfs_use_readdirplus()
435 if (test_and_clear_bit(NFS_INO_ADVISE_RDPLUS, &NFS_I(dir)->flags)) in nfs_use_readdirplus()
448 void nfs_advise_use_readdirplus(struct inode *dir) in nfs_advise_use_readdirplus() argument
450 set_bit(NFS_INO_ADVISE_RDPLUS, &NFS_I(dir)->flags); in nfs_advise_use_readdirplus()
461 void nfs_force_use_readdirplus(struct inode *dir) in nfs_force_use_readdirplus() argument
463 if (!list_empty(&NFS_I(dir)->open_files)) { in nfs_force_use_readdirplus()
464 nfs_advise_use_readdirplus(dir); in nfs_force_use_readdirplus()
465 nfs_zap_mapping(dir, dir->i_mapping); in nfs_force_use_readdirplus()
475 struct inode *dir = d_inode(parent); in nfs_prime_dcache() local
498 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_prime_dcache()
521 nfs_set_verifier(alias, nfs_save_change_attribute(dir)); in nfs_prime_dcache()
524 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_prime_dcache()
850 static bool nfs_dir_mapping_need_revalidate(struct inode *dir) in nfs_dir_mapping_need_revalidate() argument
852 struct nfs_inode *nfsi = NFS_I(dir); in nfs_dir_mapping_need_revalidate()
854 if (nfs_attribute_cache_expired(dir)) in nfs_dir_mapping_need_revalidate()
991 void nfs_force_lookup_revalidate(struct inode *dir) in nfs_force_lookup_revalidate() argument
993 NFS_I(dir)->cache_change_attribute++; in nfs_force_lookup_revalidate()
1003 static int nfs_check_verifier(struct inode *dir, struct dentry *dentry, in nfs_check_verifier() argument
1010 if (NFS_SERVER(dir)->flags & NFS_MOUNT_LOOKUP_CACHE_NONE) in nfs_check_verifier()
1012 if (!nfs_verify_change_attribute(dir, dentry->d_time)) in nfs_check_verifier()
1016 ret = nfs_revalidate_inode_rcu(NFS_SERVER(dir), dir); in nfs_check_verifier()
1018 ret = nfs_revalidate_inode(NFS_SERVER(dir), dir); in nfs_check_verifier()
1021 if (!nfs_verify_change_attribute(dir, dentry->d_time)) in nfs_check_verifier()
1030 static int nfs_is_exclusive_create(struct inode *dir, unsigned int flags) in nfs_is_exclusive_create() argument
1032 if (NFS_PROTO(dir)->version == 2) in nfs_is_exclusive_create()
1082 int nfs_neg_need_reval(struct inode *dir, struct dentry *dentry, in nfs_neg_need_reval() argument
1088 if (NFS_SERVER(dir)->flags & NFS_MOUNT_LOOKUP_CACHE_NONEG) in nfs_neg_need_reval()
1090 return !nfs_check_verifier(dir, dentry, flags & LOOKUP_RCU); in nfs_neg_need_reval()
1106 struct inode *dir; in nfs_lookup_revalidate() local
1116 dir = d_inode_rcu(parent); in nfs_lookup_revalidate()
1117 if (!dir) in nfs_lookup_revalidate()
1121 dir = d_inode(parent); in nfs_lookup_revalidate()
1123 nfs_inc_stats(dir, NFSIOS_DENTRYREVALIDATE); in nfs_lookup_revalidate()
1127 if (nfs_neg_need_reval(dir, dentry, flags)) { in nfs_lookup_revalidate()
1143 if (NFS_PROTO(dir)->have_delegation(inode, FMODE_READ)) in nfs_lookup_revalidate()
1147 if (!nfs_is_exclusive_create(dir, flags) && in nfs_lookup_revalidate()
1148 nfs_check_verifier(dir, dentry, flags & LOOKUP_RCU)) { in nfs_lookup_revalidate()
1174 trace_nfs_lookup_revalidate_enter(dir, dentry, flags); in nfs_lookup_revalidate()
1175 error = NFS_PROTO(dir)->lookup(dir, &dentry->d_name, fhandle, fattr, label); in nfs_lookup_revalidate()
1176 trace_nfs_lookup_revalidate_exit(dir, dentry, flags, error); in nfs_lookup_revalidate()
1191 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_lookup_revalidate()
1194 nfs_advise_use_readdirplus(dir); in nfs_lookup_revalidate()
1205 nfs_zap_caches(dir); in nfs_lookup_revalidate()
1211 nfs_mark_for_revalidate(dir); in nfs_lookup_revalidate()
1350 struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags) in nfs_lookup() argument
1361 nfs_inc_stats(dir, NFSIOS_VFSLOOKUP); in nfs_lookup()
1364 if (dentry->d_name.len > NFS_SERVER(dir)->namelen) in nfs_lookup()
1371 if (nfs_is_exclusive_create(dir, flags)) { in nfs_lookup()
1383 label = nfs4_label_alloc(NFS_SERVER(dir), GFP_NOWAIT); in nfs_lookup()
1389 trace_nfs_lookup_enter(dir, dentry, flags); in nfs_lookup()
1391 error = NFS_PROTO(dir)->lookup(dir, &dentry->d_name, fhandle, fattr, label); in nfs_lookup()
1404 nfs_advise_use_readdirplus(dir); in nfs_lookup()
1413 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_lookup()
1416 trace_nfs_lookup_exit(dir, dentry, flags, error); in nfs_lookup()
1474 int nfs_atomic_open(struct inode *dir, struct dentry *dentry, in nfs_atomic_open() argument
1489 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_atomic_open()
1509 if (dentry->d_name.len > NFS_SERVER(dir)->namelen) in nfs_atomic_open()
1526 trace_nfs_atomic_open_enter(dir, ctx, open_flags); in nfs_atomic_open()
1528 inode = NFS_PROTO(dir)->open_context(dir, ctx, open_flags, &attr, opened); in nfs_atomic_open()
1532 trace_nfs_atomic_open_exit(dir, ctx, open_flags, err); in nfs_atomic_open()
1538 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_atomic_open()
1555 trace_nfs_atomic_open_exit(dir, ctx, open_flags, err); in nfs_atomic_open()
1561 res = nfs_lookup(dir, dentry, lookup_flags); in nfs_atomic_open()
1589 struct inode *dir; in nfs4_lookup_revalidate() local
1593 dir = d_inode_rcu(parent); in nfs4_lookup_revalidate()
1594 if (!dir) in nfs4_lookup_revalidate()
1598 dir = d_inode(parent); in nfs4_lookup_revalidate()
1600 if (!nfs_neg_need_reval(dir, dentry, flags)) in nfs4_lookup_revalidate()
1638 struct inode *dir = d_inode(parent); in nfs_instantiate() local
1648 error = NFS_PROTO(dir)->lookup(dir, &dentry->d_name, fhandle, fattr, NULL); in nfs_instantiate()
1652 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_instantiate()
1668 nfs_mark_for_revalidate(dir); in nfs_instantiate()
1680 int nfs_create(struct inode *dir, struct dentry *dentry, in nfs_create() argument
1688 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_create()
1693 trace_nfs_create_enter(dir, dentry, open_flags); in nfs_create()
1694 error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags); in nfs_create()
1695 trace_nfs_create_exit(dir, dentry, open_flags, error); in nfs_create()
1709 nfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rdev) in nfs_mknod() argument
1715 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_mknod()
1720 trace_nfs_mknod_enter(dir, dentry); in nfs_mknod()
1721 status = NFS_PROTO(dir)->mknod(dir, dentry, &attr, rdev); in nfs_mknod()
1722 trace_nfs_mknod_exit(dir, dentry, status); in nfs_mknod()
1735 int nfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in nfs_mkdir() argument
1741 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_mkdir()
1746 trace_nfs_mkdir_enter(dir, dentry); in nfs_mkdir()
1747 error = NFS_PROTO(dir)->mkdir(dir, dentry, &attr); in nfs_mkdir()
1748 trace_nfs_mkdir_exit(dir, dentry, error); in nfs_mkdir()
1764 int nfs_rmdir(struct inode *dir, struct dentry *dentry) in nfs_rmdir() argument
1769 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_rmdir()
1771 trace_nfs_rmdir_enter(dir, dentry); in nfs_rmdir()
1774 error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); in nfs_rmdir()
1784 error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); in nfs_rmdir()
1785 trace_nfs_rmdir_exit(dir, dentry, error); in nfs_rmdir()
1800 struct inode *dir = d_inode(dentry->d_parent); in nfs_safe_remove() local
1812 trace_nfs_remove_enter(dir, dentry); in nfs_safe_remove()
1815 error = NFS_PROTO(dir)->remove(dir, &dentry->d_name); in nfs_safe_remove()
1819 error = NFS_PROTO(dir)->remove(dir, &dentry->d_name); in nfs_safe_remove()
1822 trace_nfs_remove_exit(dir, dentry, error); in nfs_safe_remove()
1832 int nfs_unlink(struct inode *dir, struct dentry *dentry) in nfs_unlink() argument
1837 dfprintk(VFS, "NFS: unlink(%s/%lu, %pd)\n", dir->i_sb->s_id, in nfs_unlink()
1838 dir->i_ino, dentry); in nfs_unlink()
1840 trace_nfs_unlink_enter(dir, dentry); in nfs_unlink()
1846 error = nfs_sillyrename(dir, dentry); in nfs_unlink()
1856 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_unlink()
1860 trace_nfs_unlink_exit(dir, dentry, error); in nfs_unlink()
1880 int nfs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) in nfs_symlink() argument
1888 dfprintk(VFS, "NFS: symlink(%s/%lu, %pd, %s)\n", dir->i_sb->s_id, in nfs_symlink()
1889 dir->i_ino, dentry, symname); in nfs_symlink()
1907 trace_nfs_symlink_enter(dir, dentry); in nfs_symlink()
1908 error = NFS_PROTO(dir)->symlink(dir, dentry, page, pathlen, &attr); in nfs_symlink()
1909 trace_nfs_symlink_exit(dir, dentry, error); in nfs_symlink()
1912 dir->i_sb->s_id, dir->i_ino, in nfs_symlink()
1940 nfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) in nfs_link() argument
1948 trace_nfs_link_enter(inode, dir, dentry); in nfs_link()
1952 error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name); in nfs_link()
1957 trace_nfs_link_exit(inode, dir, dentry, error); in nfs_link()