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()
858 static bool nfs_dir_mapping_need_revalidate(struct inode *dir) in nfs_dir_mapping_need_revalidate() argument
860 struct nfs_inode *nfsi = NFS_I(dir); in nfs_dir_mapping_need_revalidate()
862 if (nfs_attribute_cache_expired(dir)) in nfs_dir_mapping_need_revalidate()
999 void nfs_force_lookup_revalidate(struct inode *dir) in nfs_force_lookup_revalidate() argument
1001 NFS_I(dir)->cache_change_attribute++; in nfs_force_lookup_revalidate()
1011 static int nfs_check_verifier(struct inode *dir, struct dentry *dentry, in nfs_check_verifier() argument
1018 if (NFS_SERVER(dir)->flags & NFS_MOUNT_LOOKUP_CACHE_NONE) in nfs_check_verifier()
1020 if (!nfs_verify_change_attribute(dir, dentry->d_time)) in nfs_check_verifier()
1024 ret = nfs_revalidate_inode_rcu(NFS_SERVER(dir), dir); in nfs_check_verifier()
1026 ret = nfs_revalidate_inode(NFS_SERVER(dir), dir); in nfs_check_verifier()
1029 if (!nfs_verify_change_attribute(dir, dentry->d_time)) in nfs_check_verifier()
1038 static int nfs_is_exclusive_create(struct inode *dir, unsigned int flags) in nfs_is_exclusive_create() argument
1040 if (NFS_PROTO(dir)->version == 2) in nfs_is_exclusive_create()
1090 int nfs_neg_need_reval(struct inode *dir, struct dentry *dentry, in nfs_neg_need_reval() argument
1096 if (NFS_SERVER(dir)->flags & NFS_MOUNT_LOOKUP_CACHE_NONEG) in nfs_neg_need_reval()
1098 return !nfs_check_verifier(dir, dentry, flags & LOOKUP_RCU); in nfs_neg_need_reval()
1114 struct inode *dir; in nfs_lookup_revalidate() local
1124 dir = d_inode_rcu(parent); in nfs_lookup_revalidate()
1125 if (!dir) in nfs_lookup_revalidate()
1129 dir = d_inode(parent); in nfs_lookup_revalidate()
1131 nfs_inc_stats(dir, NFSIOS_DENTRYREVALIDATE); in nfs_lookup_revalidate()
1135 if (nfs_neg_need_reval(dir, dentry, flags)) { in nfs_lookup_revalidate()
1151 if (NFS_PROTO(dir)->have_delegation(inode, FMODE_READ)) in nfs_lookup_revalidate()
1155 if (!nfs_is_exclusive_create(dir, flags) && in nfs_lookup_revalidate()
1156 nfs_check_verifier(dir, dentry, flags & LOOKUP_RCU)) { in nfs_lookup_revalidate()
1182 trace_nfs_lookup_revalidate_enter(dir, dentry, flags); in nfs_lookup_revalidate()
1183 error = NFS_PROTO(dir)->lookup(dir, &dentry->d_name, fhandle, fattr, label); in nfs_lookup_revalidate()
1184 trace_nfs_lookup_revalidate_exit(dir, dentry, flags, error); in nfs_lookup_revalidate()
1199 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_lookup_revalidate()
1202 nfs_advise_use_readdirplus(dir); in nfs_lookup_revalidate()
1213 nfs_zap_caches(dir); in nfs_lookup_revalidate()
1219 nfs_mark_for_revalidate(dir); in nfs_lookup_revalidate()
1358 struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags) in nfs_lookup() argument
1369 nfs_inc_stats(dir, NFSIOS_VFSLOOKUP); in nfs_lookup()
1372 if (dentry->d_name.len > NFS_SERVER(dir)->namelen) in nfs_lookup()
1379 if (nfs_is_exclusive_create(dir, flags)) { in nfs_lookup()
1391 label = nfs4_label_alloc(NFS_SERVER(dir), GFP_NOWAIT); in nfs_lookup()
1397 trace_nfs_lookup_enter(dir, dentry, flags); in nfs_lookup()
1399 error = NFS_PROTO(dir)->lookup(dir, &dentry->d_name, fhandle, fattr, label); in nfs_lookup()
1412 nfs_advise_use_readdirplus(dir); in nfs_lookup()
1421 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_lookup()
1424 trace_nfs_lookup_exit(dir, dentry, flags, error); in nfs_lookup()
1485 int nfs_atomic_open(struct inode *dir, struct dentry *dentry, in nfs_atomic_open() argument
1500 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_atomic_open()
1520 if (dentry->d_name.len > NFS_SERVER(dir)->namelen) in nfs_atomic_open()
1537 trace_nfs_atomic_open_enter(dir, ctx, open_flags); in nfs_atomic_open()
1539 inode = NFS_PROTO(dir)->open_context(dir, ctx, open_flags, &attr, opened); in nfs_atomic_open()
1543 trace_nfs_atomic_open_exit(dir, ctx, open_flags, err); in nfs_atomic_open()
1549 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_atomic_open()
1566 trace_nfs_atomic_open_exit(dir, ctx, open_flags, err); in nfs_atomic_open()
1572 res = nfs_lookup(dir, dentry, lookup_flags); in nfs_atomic_open()
1600 struct inode *dir; in nfs4_lookup_revalidate() local
1604 dir = d_inode_rcu(parent); in nfs4_lookup_revalidate()
1605 if (!dir) in nfs4_lookup_revalidate()
1609 dir = d_inode(parent); in nfs4_lookup_revalidate()
1611 if (!nfs_neg_need_reval(dir, dentry, flags)) in nfs4_lookup_revalidate()
1649 struct inode *dir = d_inode(parent); in nfs_instantiate() local
1659 error = NFS_PROTO(dir)->lookup(dir, &dentry->d_name, fhandle, fattr, NULL); in nfs_instantiate()
1663 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_instantiate()
1679 nfs_mark_for_revalidate(dir); in nfs_instantiate()
1691 int nfs_create(struct inode *dir, struct dentry *dentry, in nfs_create() argument
1699 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_create()
1704 trace_nfs_create_enter(dir, dentry, open_flags); in nfs_create()
1705 error = NFS_PROTO(dir)->create(dir, dentry, &attr, open_flags); in nfs_create()
1706 trace_nfs_create_exit(dir, dentry, open_flags, error); in nfs_create()
1720 nfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rdev) in nfs_mknod() argument
1726 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_mknod()
1734 trace_nfs_mknod_enter(dir, dentry); in nfs_mknod()
1735 status = NFS_PROTO(dir)->mknod(dir, dentry, &attr, rdev); in nfs_mknod()
1736 trace_nfs_mknod_exit(dir, dentry, status); in nfs_mknod()
1749 int nfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in nfs_mkdir() argument
1755 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_mkdir()
1760 trace_nfs_mkdir_enter(dir, dentry); in nfs_mkdir()
1761 error = NFS_PROTO(dir)->mkdir(dir, dentry, &attr); in nfs_mkdir()
1762 trace_nfs_mkdir_exit(dir, dentry, error); in nfs_mkdir()
1778 int nfs_rmdir(struct inode *dir, struct dentry *dentry) in nfs_rmdir() argument
1783 dir->i_sb->s_id, dir->i_ino, dentry); in nfs_rmdir()
1785 trace_nfs_rmdir_enter(dir, dentry); in nfs_rmdir()
1788 error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); in nfs_rmdir()
1798 error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name); in nfs_rmdir()
1799 trace_nfs_rmdir_exit(dir, dentry, error); in nfs_rmdir()
1814 struct inode *dir = d_inode(dentry->d_parent); in nfs_safe_remove() local
1826 trace_nfs_remove_enter(dir, dentry); in nfs_safe_remove()
1829 error = NFS_PROTO(dir)->remove(dir, &dentry->d_name); in nfs_safe_remove()
1833 error = NFS_PROTO(dir)->remove(dir, &dentry->d_name); in nfs_safe_remove()
1836 trace_nfs_remove_exit(dir, dentry, error); in nfs_safe_remove()
1846 int nfs_unlink(struct inode *dir, struct dentry *dentry) in nfs_unlink() argument
1851 dfprintk(VFS, "NFS: unlink(%s/%lu, %pd)\n", dir->i_sb->s_id, in nfs_unlink()
1852 dir->i_ino, dentry); in nfs_unlink()
1854 trace_nfs_unlink_enter(dir, dentry); in nfs_unlink()
1860 error = nfs_sillyrename(dir, dentry); in nfs_unlink()
1870 nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); in nfs_unlink()
1874 trace_nfs_unlink_exit(dir, dentry, error); in nfs_unlink()
1894 int nfs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) in nfs_symlink() argument
1902 dfprintk(VFS, "NFS: symlink(%s/%lu, %pd, %s)\n", dir->i_sb->s_id, in nfs_symlink()
1903 dir->i_ino, dentry, symname); in nfs_symlink()
1921 trace_nfs_symlink_enter(dir, dentry); in nfs_symlink()
1922 error = NFS_PROTO(dir)->symlink(dir, dentry, page, pathlen, &attr); in nfs_symlink()
1923 trace_nfs_symlink_exit(dir, dentry, error); in nfs_symlink()
1926 dir->i_sb->s_id, dir->i_ino, in nfs_symlink()
1954 nfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) in nfs_link() argument
1962 trace_nfs_link_enter(inode, dir, dentry); in nfs_link()
1966 error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name); in nfs_link()
1971 trace_nfs_link_exit(inode, dir, dentry, error); in nfs_link()