aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2018-06-24 10:45:44 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2018-08-05 15:50:59 -0400
commit1401a0fc2d47988677dc1dbfd56ff89daa323717 (patch)
tree8d8875d124057a28eabe0b2118013164de1d2b57
parent34b2a88fb4aa4de34e1d5f9fc2761b746980f9b1 (diff)
afs_try_auto_mntpt(): return NULL instead of ERR_PTR(-ENOENT)
simpler logics in callers that way Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/afs/dir.c2
-rw-r--r--fs/afs/dynroot.c13
2 files changed, 2 insertions, 13 deletions
diff --git a/fs/afs/dir.c b/fs/afs/dir.c
index 52f44255f65d..855bf2b79fed 100644
--- a/fs/afs/dir.c
+++ b/fs/afs/dir.c
@@ -866,8 +866,6 @@ static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry,
866 key_put(key); 866 key_put(key);
867 if (inode == ERR_PTR(-ENOENT)) { 867 if (inode == ERR_PTR(-ENOENT)) {
868 inode = afs_try_auto_mntpt(dentry, dir); 868 inode = afs_try_auto_mntpt(dentry, dir);
869 if (inode == ERR_PTR(-ENOENT))
870 inode = NULL;
871 } else { 869 } else {
872 dentry->d_fsdata = 870 dentry->d_fsdata =
873 (void *)(unsigned long)dvnode->status.data_version; 871 (void *)(unsigned long)dvnode->status.data_version;
diff --git a/fs/afs/dynroot.c b/fs/afs/dynroot.c
index 40fea59067b3..1cde710a8013 100644
--- a/fs/afs/dynroot.c
+++ b/fs/afs/dynroot.c
@@ -83,7 +83,7 @@ struct inode *afs_try_auto_mntpt(struct dentry *dentry, struct inode *dir)
83 83
84out: 84out:
85 _leave("= %d", ret); 85 _leave("= %d", ret);
86 return ERR_PTR(ret); 86 return ret == -ENOENT ? NULL : ERR_PTR(ret);
87} 87}
88 88
89/* 89/*
@@ -141,11 +141,6 @@ out_p:
141static struct dentry *afs_dynroot_lookup(struct inode *dir, struct dentry *dentry, 141static struct dentry *afs_dynroot_lookup(struct inode *dir, struct dentry *dentry,
142 unsigned int flags) 142 unsigned int flags)
143{ 143{
144 struct afs_vnode *vnode;
145 struct inode *inode;
146
147 vnode = AFS_FS_I(dir);
148
149 _enter("%pd", dentry); 144 _enter("%pd", dentry);
150 145
151 ASSERTCMP(d_inode(dentry), ==, NULL); 146 ASSERTCMP(d_inode(dentry), ==, NULL);
@@ -159,11 +154,7 @@ static struct dentry *afs_dynroot_lookup(struct inode *dir, struct dentry *dentr
159 memcmp(dentry->d_name.name, "@cell", 5) == 0) 154 memcmp(dentry->d_name.name, "@cell", 5) == 0)
160 return afs_lookup_atcell(dentry); 155 return afs_lookup_atcell(dentry);
161 156
162 inode = afs_try_auto_mntpt(dentry, dir); 157 return d_splice_alias(afs_try_auto_mntpt(dentry, dir), dentry);
163 if (inode == ERR_PTR(-ENOENT))
164 inode = NULL;
165
166 return d_splice_alias(inode, dentry);
167} 158}
168 159
169const struct inode_operations afs_dynroot_inode_operations = { 160const struct inode_operations afs_dynroot_inode_operations = {