Lines Matching refs:fc
532 static bool afs_do_probe_fileserver(struct afs_fs_cursor *fc) in afs_do_probe_fileserver() argument
536 fc->ac.addr = NULL; in afs_do_probe_fileserver()
537 fc->ac.start = READ_ONCE(fc->ac.alist->index); in afs_do_probe_fileserver()
538 fc->ac.index = fc->ac.start; in afs_do_probe_fileserver()
539 fc->ac.error = 0; in afs_do_probe_fileserver()
540 fc->ac.begun = false; in afs_do_probe_fileserver()
542 while (afs_iterate_addresses(&fc->ac)) { in afs_do_probe_fileserver()
543 afs_fs_get_capabilities(afs_v2net(fc->vnode), fc->cbi->server, in afs_do_probe_fileserver()
544 &fc->ac, fc->key); in afs_do_probe_fileserver()
545 switch (fc->ac.error) { in afs_do_probe_fileserver()
547 afs_end_cursor(&fc->ac); in afs_do_probe_fileserver()
548 set_bit(AFS_SERVER_FL_PROBED, &fc->cbi->server->flags); in afs_do_probe_fileserver()
551 fc->ac.error = afs_abort_to_error(fc->ac.abort_code); in afs_do_probe_fileserver()
563 fc->ac.error = -EIO; in afs_do_probe_fileserver()
569 afs_end_cursor(&fc->ac); in afs_do_probe_fileserver()
580 bool afs_probe_fileserver(struct afs_fs_cursor *fc) in afs_probe_fileserver() argument
588 if (test_bit(AFS_SERVER_FL_PROBED, &fc->cbi->server->flags)) { in afs_probe_fileserver()
593 if (!test_and_set_bit_lock(AFS_SERVER_FL_PROBING, &fc->cbi->server->flags)) { in afs_probe_fileserver()
594 success = afs_do_probe_fileserver(fc); in afs_probe_fileserver()
595 clear_bit_unlock(AFS_SERVER_FL_PROBING, &fc->cbi->server->flags); in afs_probe_fileserver()
596 wake_up_bit(&fc->cbi->server->flags, AFS_SERVER_FL_PROBING); in afs_probe_fileserver()
602 ret = wait_on_bit(&fc->cbi->server->flags, AFS_SERVER_FL_PROBING, in afs_probe_fileserver()
605 fc->ac.error = ret; in afs_probe_fileserver()
612 fc->ac.error = -ESTALE; in afs_probe_fileserver()
623 static noinline bool afs_update_server_record(struct afs_fs_cursor *fc, struct afs_server *server) in afs_update_server_record() argument
629 alist = afs_vl_lookup_addrs(fc->vnode->volume->cell, fc->key, in afs_update_server_record()
632 fc->ac.error = PTR_ERR(alist); in afs_update_server_record()
633 _leave(" = f [%d]", fc->ac.error); in afs_update_server_record()
656 bool afs_check_server_record(struct afs_fs_cursor *fc, struct afs_server *server) in afs_check_server_record() argument
675 success = afs_update_server_record(fc, server); in afs_check_server_record()
685 fc->ac.error = ret; in afs_check_server_record()