aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2019-05-09 12:19:10 -0400
committerDavid Howells <dhowells@redhat.com>2019-05-16 11:25:21 -0400
commitfefb2483dc10c736e4235984fed4f3a61c99e1c2 (patch)
tree9e3a3e661306921271979830795bf64b32e0c887 /fs/afs
parentfd711586bb7d63f257da5eff234e68c446ac35ea (diff)
afs: Don't pass the vnode pointer through into the inline bulk status op
Don't pass the vnode pointer through into the inline bulk status op. We want to process the status records outside of it anyway. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs')
-rw-r--r--fs/afs/fsclient.c7
-rw-r--r--fs/afs/yfsclient.c10
2 files changed, 2 insertions, 15 deletions
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index 388750d80cab..dc6f8da0dfa0 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -2237,7 +2237,6 @@ static int afs_deliver_fs_inline_bulk_status(struct afs_call *call)
2237{ 2237{
2238 struct afs_file_status *statuses; 2238 struct afs_file_status *statuses;
2239 struct afs_callback *callbacks; 2239 struct afs_callback *callbacks;
2240 struct afs_vnode *vnode = call->reply[0];
2241 const __be32 *bp; 2240 const __be32 *bp;
2242 u32 tmp; 2241 u32 tmp;
2243 int ret; 2242 int ret;
@@ -2278,8 +2277,7 @@ static int afs_deliver_fs_inline_bulk_status(struct afs_call *call)
2278 bp = call->buffer; 2277 bp = call->buffer;
2279 statuses = call->reply[1]; 2278 statuses = call->reply[1];
2280 ret = afs_decode_status(call, &bp, &statuses[call->count], 2279 ret = afs_decode_status(call, &bp, &statuses[call->count],
2281 call->count == 0 ? vnode : NULL, 2280 NULL, NULL, NULL);
2282 NULL, NULL);
2283 if (ret < 0) 2281 if (ret < 0)
2284 return ret; 2282 return ret;
2285 2283
@@ -2321,8 +2319,6 @@ static int afs_deliver_fs_inline_bulk_status(struct afs_call *call)
2321 callbacks = call->reply[2]; 2319 callbacks = call->reply[2];
2322 xdr_decode_AFSCallBack_raw(call, &callbacks[call->count], &bp); 2320 xdr_decode_AFSCallBack_raw(call, &callbacks[call->count], &bp);
2323 statuses = call->reply[1]; 2321 statuses = call->reply[1];
2324 if (call->count == 0 && vnode && statuses[0].abort_code == 0)
2325 xdr_decode_AFSCallBack(call, vnode, &bp);
2326 call->count++; 2322 call->count++;
2327 if (call->count < call->count2) 2323 if (call->count < call->count2)
2328 goto more_cbs; 2324 goto more_cbs;
@@ -2390,7 +2386,6 @@ int afs_fs_inline_bulk_status(struct afs_fs_cursor *fc,
2390 } 2386 }
2391 2387
2392 call->key = fc->key; 2388 call->key = fc->key;
2393 call->reply[0] = NULL; /* vnode for fid[0] */
2394 call->reply[1] = statuses; 2389 call->reply[1] = statuses;
2395 call->reply[2] = callbacks; 2390 call->reply[2] = callbacks;
2396 call->reply[3] = volsync; 2391 call->reply[3] = volsync;
diff --git a/fs/afs/yfsclient.c b/fs/afs/yfsclient.c
index b42bd412dba1..3f6d50edf498 100644
--- a/fs/afs/yfsclient.c
+++ b/fs/afs/yfsclient.c
@@ -2055,7 +2055,6 @@ static int yfs_deliver_fs_inline_bulk_status(struct afs_call *call)
2055{ 2055{
2056 struct afs_file_status *statuses; 2056 struct afs_file_status *statuses;
2057 struct afs_callback *callbacks; 2057 struct afs_callback *callbacks;
2058 struct afs_vnode *vnode = call->reply[0];
2059 const __be32 *bp; 2058 const __be32 *bp;
2060 u32 tmp; 2059 u32 tmp;
2061 int ret; 2060 int ret;
@@ -2096,8 +2095,7 @@ static int yfs_deliver_fs_inline_bulk_status(struct afs_call *call)
2096 bp = call->buffer; 2095 bp = call->buffer;
2097 statuses = call->reply[1]; 2096 statuses = call->reply[1];
2098 ret = yfs_decode_status(call, &bp, &statuses[call->count], 2097 ret = yfs_decode_status(call, &bp, &statuses[call->count],
2099 call->count == 0 ? vnode : NULL, 2098 NULL, NULL, NULL);
2100 NULL, NULL);
2101 if (ret < 0) 2099 if (ret < 0)
2102 return ret; 2100 return ret;
2103 2101
@@ -2138,11 +2136,6 @@ static int yfs_deliver_fs_inline_bulk_status(struct afs_call *call)
2138 bp = call->buffer; 2136 bp = call->buffer;
2139 callbacks = call->reply[2]; 2137 callbacks = call->reply[2];
2140 xdr_decode_YFSCallBack_raw(call, &callbacks[call->count], &bp); 2138 xdr_decode_YFSCallBack_raw(call, &callbacks[call->count], &bp);
2141 statuses = call->reply[1];
2142 if (call->count == 0 && vnode && statuses[0].abort_code == 0) {
2143 bp = call->buffer;
2144 xdr_decode_YFSCallBack(call, vnode, &bp);
2145 }
2146 call->count++; 2139 call->count++;
2147 if (call->count < call->count2) 2140 if (call->count < call->count2)
2148 goto more_cbs; 2141 goto more_cbs;
@@ -2210,7 +2203,6 @@ int yfs_fs_inline_bulk_status(struct afs_fs_cursor *fc,
2210 } 2203 }
2211 2204
2212 call->key = fc->key; 2205 call->key = fc->key;
2213 call->reply[0] = NULL; /* vnode for fid[0] */
2214 call->reply[1] = statuses; 2206 call->reply[1] = statuses;
2215 call->reply[2] = callbacks; 2207 call->reply[2] = callbacks;
2216 call->reply[3] = volsync; 2208 call->reply[3] = volsync;