aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/afs/afs.h2
-rw-r--r--fs/afs/callback.c8
-rw-r--r--fs/afs/cmservice.c17
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
76struct afs_callback_break { 76struct 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;