Lines Matching refs:op
153 static bool __afs_is_server_excluded(struct afs_operation *op, struct afs_volume *volume) in __afs_is_server_excluded() argument
165 if (op->server == se->server) { in __afs_is_server_excluded()
179 static int afs_is_server_excluded(struct afs_operation *op, struct afs_volume *volume) in afs_is_server_excluded() argument
183 if (__afs_is_server_excluded(op, volume)) in afs_is_server_excluded()
187 ret = afs_check_volume_status(op->volume, op); in afs_is_server_excluded()
191 return __afs_is_server_excluded(op, volume); in afs_is_server_excluded()
197 static int afs_update_volume_creation_time(struct afs_operation *op, struct afs_volume *volume) in afs_update_volume_creation_time() argument
201 time64_t old = op->pre_volsync.creation; in afs_update_volume_creation_time()
202 time64_t new = op->volsync.creation; in afs_update_volume_creation_time()
239 ret = afs_is_server_excluded(op, volume); in afs_update_volume_creation_time()
264 static void afs_update_volume_update_time(struct afs_operation *op, struct afs_volume *volume) in afs_update_volume_update_time() argument
268 time64_t old = op->pre_volsync.update; in afs_update_volume_update_time()
269 time64_t new = op->volsync.update; in afs_update_volume_update_time()
303 static int afs_update_volume_times(struct afs_operation *op, struct afs_volume *volume) in afs_update_volume_times() argument
307 if (likely(op->volsync.creation == volume->creation_time && in afs_update_volume_times()
308 op->volsync.update == volume->update_time)) in afs_update_volume_times()
312 if (op->volsync.creation != volume->creation_time) { in afs_update_volume_times()
313 ret = afs_update_volume_creation_time(op, volume); in afs_update_volume_times()
317 if (op->volsync.update != volume->update_time) in afs_update_volume_times()
318 afs_update_volume_update_time(op, volume); in afs_update_volume_times()
328 int afs_update_volume_state(struct afs_operation *op) in afs_update_volume_state() argument
330 struct afs_server_list *slist = op->server_list; in afs_update_volume_state()
331 struct afs_server_entry *se = &slist->servers[op->server_index]; in afs_update_volume_state()
332 struct afs_callback *cb = &op->file[0].scb.callback; in afs_update_volume_state()
333 struct afs_volume *volume = op->volume; in afs_update_volume_state()
338 _enter("%llx", op->volume->vid); in afs_update_volume_state()
340 if (op->volsync.creation != TIME64_MIN || op->volsync.update != TIME64_MIN) { in afs_update_volume_state()
341 ret = afs_update_volume_times(op, volume); in afs_update_volume_state()
348 if (op->cb_v_break == cb_v_break && in afs_update_volume_state()
349 (op->file[0].scb.have_cb || op->file[1].scb.have_cb)) { in afs_update_volume_state()
352 if (!op->file[0].scb.have_cb) in afs_update_volume_state()
353 expires_at = op->file[1].scb.callback.expires_at; in afs_update_volume_state()
358 if (cb_v_check < op->cb_v_break) in afs_update_volume_state()
359 atomic_cmpxchg(&volume->cb_v_check, cb_v_check, op->cb_v_break); in afs_update_volume_state()