diff options
-rw-r--r-- | fs/afs/afs.h | 2 | ||||
-rw-r--r-- | fs/afs/callback.c | 8 | ||||
-rw-r--r-- | fs/afs/cmservice.c | 17 |
3 files changed, 8 insertions, 19 deletions
diff --git a/fs/afs/afs.h b/fs/afs/afs.h index c23b31b742fa..fb9bcb8758ea 100644 --- a/fs/afs/afs.h +++ b/fs/afs/afs.h | |||
@@ -75,7 +75,7 @@ struct afs_callback { | |||
75 | 75 | ||
76 | struct afs_callback_break { | 76 | struct afs_callback_break { |
77 | struct afs_fid fid; /* File identifier */ | 77 | struct afs_fid fid; /* File identifier */ |
78 | struct afs_callback cb; /* Callback details */ | 78 | //struct afs_callback cb; /* Callback details */ |
79 | }; | 79 | }; |
80 | 80 | ||
81 | #define AFSCBMAX 50 /* maximum callbacks transferred per bulk op */ | 81 | #define AFSCBMAX 50 /* maximum callbacks transferred per bulk op */ |
diff --git a/fs/afs/callback.c b/fs/afs/callback.c index 8698198ad427..df9bfee698ad 100644 --- a/fs/afs/callback.c +++ b/fs/afs/callback.c | |||
@@ -310,14 +310,10 @@ void afs_break_callbacks(struct afs_server *server, size_t count, | |||
310 | /* TODO: Sort the callback break list by volume ID */ | 310 | /* TODO: Sort the callback break list by volume ID */ |
311 | 311 | ||
312 | for (; count > 0; callbacks++, count--) { | 312 | for (; count > 0; callbacks++, count--) { |
313 | _debug("- Fid { vl=%08llx n=%llu u=%u } CB { v=%u x=%u t=%u }", | 313 | _debug("- Fid { vl=%08llx n=%llu u=%u }", |
314 | callbacks->fid.vid, | 314 | callbacks->fid.vid, |
315 | callbacks->fid.vnode, | 315 | callbacks->fid.vnode, |
316 | callbacks->fid.unique, | 316 | callbacks->fid.unique); |
317 | callbacks->cb.version, | ||
318 | callbacks->cb.expiry, | ||
319 | callbacks->cb.type | ||
320 | ); | ||
321 | afs_break_one_callback(server, &callbacks->fid); | 317 | afs_break_one_callback(server, &callbacks->fid); |
322 | } | 318 | } |
323 | 319 | ||
diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c index 186f621f8722..fc0010d800a0 100644 --- a/fs/afs/cmservice.c +++ b/fs/afs/cmservice.c | |||
@@ -218,7 +218,6 @@ static int afs_deliver_cb_callback(struct afs_call *call) | |||
218 | cb->fid.vid = ntohl(*bp++); | 218 | cb->fid.vid = ntohl(*bp++); |
219 | cb->fid.vnode = ntohl(*bp++); | 219 | cb->fid.vnode = ntohl(*bp++); |
220 | cb->fid.unique = ntohl(*bp++); | 220 | cb->fid.unique = ntohl(*bp++); |
221 | cb->cb.type = AFSCM_CB_UNTYPED; | ||
222 | } | 221 | } |
223 | 222 | ||
224 | afs_extract_to_tmp(call); | 223 | afs_extract_to_tmp(call); |
@@ -236,24 +235,18 @@ static int afs_deliver_cb_callback(struct afs_call *call) | |||
236 | if (call->count2 != call->count && call->count2 != 0) | 235 | if (call->count2 != call->count && call->count2 != 0) |
237 | return afs_protocol_error(call, -EBADMSG, | 236 | return afs_protocol_error(call, -EBADMSG, |
238 | afs_eproto_cb_count); | 237 | afs_eproto_cb_count); |
239 | afs_extract_to_buf(call, call->count2 * 3 * 4); | 238 | call->_iter = &call->iter; |
239 | iov_iter_discard(&call->iter, READ, call->count2 * 3 * 4); | ||
240 | call->unmarshall++; | 240 | call->unmarshall++; |
241 | 241 | ||
242 | case 4: | 242 | case 4: |
243 | _debug("extract CB array"); | 243 | _debug("extract discard %zu/%u", |
244 | iov_iter_count(&call->iter), call->count2 * 3 * 4); | ||
245 | |||
244 | ret = afs_extract_data(call, false); | 246 | ret = afs_extract_data(call, false); |
245 | if (ret < 0) | 247 | if (ret < 0) |
246 | return ret; | 248 | return ret; |
247 | 249 | ||
248 | _debug("unmarshall CB array"); | ||
249 | cb = call->request; | ||
250 | bp = call->buffer; | ||
251 | for (loop = call->count2; loop > 0; loop--, cb++) { | ||
252 | cb->cb.version = ntohl(*bp++); | ||
253 | cb->cb.expiry = ntohl(*bp++); | ||
254 | cb->cb.type = ntohl(*bp++); | ||
255 | } | ||
256 | |||
257 | call->unmarshall++; | 250 | call->unmarshall++; |
258 | case 5: | 251 | case 5: |
259 | break; | 252 | break; |