• Home
  • Raw
  • Download

Lines Matching +full:set +full:- +full:aces

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
18 #include <linux/backing-dev.h>
36 * Partial file-locking emulation mode. (The problem being that AFS3 only
37 * allows whole-file locks and no upgrading/downgrading).
49 bool autocell; /* T if set auto mount operation */
52 enum afs_flock_mode flock_mode; /* Partial file-locking emulation mode */
93 * a record of an in-progress RxRPC call
109 union { /* Convenience for ->def_iter */
127 unsigned int max_lifespan; /* Maximum lifespan to set if not 0 */
132 unsigned char addr_ix; /* Address in ->alist */
159 * - returning an error will cause the call to be aborted
179 struct list_head vnode_link; /* Link in vnode->wb_keys */
183 * AFS open file information record. Pointed to by file->private_data.
192 struct afs_file *af = file->private_data; in afs_file_key()
194 return af->key; in afs_file_key()
219 * - there's one superblock per volume
231 return sb->s_fs_info; in AFS_FS_S()
237 * Set of substitutes for @sys.
335 * simply by pointing AFSDB/SRV records for two names at the same set of VL
340 * Cells only exist in the sense that (a) a cell's name maps to a set of VL
353 struct rb_node net_node; /* Node in net->cells */
369 #define AFS_CELL_FL_NO_GC 0 /* The cell was added manually, don't auto-gc */
393 char *name; /* Cell name, case-flattened and NUL-padded */
428 char name[]; /* Server name, case-flattened */
457 * This is pointed to by cell->vldb_entries, indexed by name.
463 #define AFS_VLDB_HAS_RW 0 /* - R/W volume exists */
464 #define AFS_VLDB_HAS_RO 1 /* - R/O volume exists */
465 #define AFS_VLDB_HAS_BAK 2 /* - Backup volume exists */
466 #define AFS_VLDB_QUERY_VALID 3 /* - Record is valid */
467 #define AFS_VLDB_QUERY_ERROR 4 /* - VL server returned error */
478 u8 name[AFS_MAXVOLNAME + 1]; /* NUL-padded volume name */
493 struct rb_node uuid_rb; /* Link in net->fs_servers */
496 struct list_head probe_link; /* Link in net->fs_probe_list */
497 struct hlist_node addr4_link; /* Link in net->fs_addresses4 */
498 struct hlist_node addr6_link; /* Link in net->fs_addresses6 */
499 struct hlist_node proc_link; /* Link in net->fs_proc */
523 unsigned cb_s_break; /* Break-everything counter. */
555 unsigned int seq; /* Set to ->servers_seq when installed */
571 struct rb_node cell_node; /* Link in cell->volumes */
572 struct hlist_node proc_link; /* Link in cell->proc_volumes */
575 #define AFS_VOLUME_NEEDS_UPDATE 0 /* - T if an update needs performing */
576 #define AFS_VOLUME_UPDATING 1 /* - T if an update is in progress */
577 #define AFS_VOLUME_WAIT 2 /* - T if users must wait for update */
578 #define AFS_VOLUME_DELETED 3 /* - T if volume appears deleted */
579 #define AFS_VOLUME_OFFLINE 4 /* - T if volume offline notice given */
580 #define AFS_VOLUME_BUSY 5 /* - T if volume busy notice given */
581 #define AFS_VOLUME_MAYBE_NO_IBULK 6 /* - T if some servers don't have InlineBulkStatus */
586 rwlock_t servers_lock; /* Lock for ->servers */
587 unsigned int servers_seq; /* Incremented each time ->servers changes */
589 unsigned cb_v_break; /* Break-everything counter. */
593 char type_force; /* force volume type (suppress R/O -> R/W) */
595 u8 name[AFS_MAXVOLNAME + 1]; /* NUL-padded volume name */
633 #define AFS_VNODE_CB_PROMISED 0 /* Set if vnode has a callback promise */
634 #define AFS_VNODE_UNSET 1 /* set if vnode attributes not yet set */
635 #define AFS_VNODE_DIR_VALID 2 /* Set if dir contents are valid */
636 #define AFS_VNODE_ZAP_DATA 3 /* set if vnode's data should be invalidated */
637 #define AFS_VNODE_DELETED 4 /* set if vnode deleted on server */
638 #define AFS_VNODE_MOUNTPOINT 5 /* set if vnode is a mountpoint symlink */
639 #define AFS_VNODE_AUTOCELL 6 /* set if Vnode is an auto mount point */
640 #define AFS_VNODE_PSEUDODIR 7 /* set if Vnode is a pseudo directory */
641 #define AFS_VNODE_NEW_CONTENT 8 /* Set if file has new content (create/trunc-0) */
642 #define AFS_VNODE_SILLY_DELETED 9 /* Set if file has been silly-deleted */
643 #define AFS_VNODE_MODIFYING 10 /* Set if we're performing a modification op */
656 unsigned int cb_s_break; /* Mass break counter on ->server */
657 unsigned int cb_v_break; /* Mass break counter on ->volume */
659 seqlock_t cb_lock; /* Lock for ->cb_server, ->status, ->cb_*break */
667 return vnode->cache; in afs_vnode_cache()
717 * Cursor for iterating over a set of volume location servers.
729 #define AFS_VL_CURSOR_STOP 0x0001 /* Set to cease iteration */
730 #define AFS_VL_CURSOR_RETRY 0x0002 /* Set to do a retry */
731 #define AFS_VL_CURSOR_RETRIED 0x0004 /* Set if started a retry */
760 bool modification:1; /* Set if the content gets modified */
781 struct timespec64 ctime; /* Change time to set */
791 int which; /* Which ->file[] to fetch for */
818 bool laundering; /* Laundering page, PG_writeback not set */
842 #define AFS_OPERATION_STOP 0x0001 /* Set to cease iteration */
843 #define AFS_OPERATION_VBUSY 0x0002 /* Set if seen VBUSY */
844 #define AFS_OPERATION_VMOVED 0x0004 /* Set if seen VMOVED */
845 #define AFS_OPERATION_VNOVOL 0x0008 /* Set if seen VNOVOL */
846 #define AFS_OPERATION_CUR_ONLY 0x0010 /* Set if current server only (file lock held) */
847 #define AFS_OPERATION_NO_VSLEEP 0x0020 /* Set to prevent sleep on VBUSY, VOFFLINE, ... */
848 #define AFS_OPERATION_UNINTR 0x0040 /* Set if op is uninterruptible */
849 #define AFS_OPERATION_DOWNGRADE 0x0080 /* Set to retry with downgraded opcode */
850 #define AFS_OPERATION_LOCK_0 0x0100 /* Set if have io_lock on file[0] */
851 #define AFS_OPERATION_LOCK_1 0x0200 /* Set if have io_lock on file[1] */
852 #define AFS_OPERATION_TRIED_ALL 0x0400 /* Set if we've tried all the fileservers */
853 #define AFS_OPERATION_RETRY_SERVER 0x0800 /* Set if we should retry the current server */
854 #define AFS_OPERATION_DIR_CONFLICT 0x1000 /* Set if we detected a 3rd-party dir change */
865 * We use page->private to hold the amount of the page that we've written to,
882 int shift = PAGE_SHIFT - (__AFS_PAGE_PRIV_SHIFT - 1); in afs_page_dirty_resolution()
906 to = (to - 1) >> res; in afs_page_dirty()
929 refcount_inc(&alist->usage); in afs_get_addrlist()
970 return vnode->cb_break + vnode->cb_v_break; in afs_calc_vnode_cb_break()
976 return cb_break != (vnode->cb_break + vnode->volume->cb_v_break); in afs_cb_is_broken()
1056 refcount_inc(&req->usage); in afs_get_read()
1114 op->error = -ENOMEM; in afs_op_nomem()
1120 op->file[n].vnode = vnode; in afs_op_set_vnode()
1121 op->file[n].need_io_lock = true; in afs_op_set_vnode()
1127 op->file[n].fid = *fid; in afs_op_set_fid()
1172 return afs_net(AFS_FS_S(sb)->net_ns); in afs_sb2net()
1177 return afs_sb2net(dentry->d_sb); in afs_d2net()
1182 return afs_sb2net(inode->i_sb); in afs_i2net()
1187 return afs_i2net(&vnode->vfs_inode); in afs_v2net()
1200 #define afs_stat_v(vnode, n) __afs_stat(&afs_v2net(vnode)->n)
1264 op->call = call; in afs_make_op_call()
1265 op->type = call->type; in afs_make_op_call()
1266 call->op = op; in afs_make_op_call()
1267 call->key = op->key; in afs_make_op_call()
1268 call->intr = !(op->flags & AFS_OPERATION_UNINTR); in afs_make_op_call()
1269 afs_make_call(&op->ac, call, gfp); in afs_make_op_call()
1274 call->kvec[0].iov_base = buf; in afs_extract_begin()
1275 call->kvec[0].iov_len = size; in afs_extract_begin()
1276 iov_iter_kvec(&call->def_iter, READ, call->kvec, 1, size); in afs_extract_begin()
1281 afs_extract_begin(call, &call->tmp, sizeof(call->tmp)); in afs_extract_to_tmp()
1286 afs_extract_begin(call, &call->tmp64, sizeof(call->tmp64)); in afs_extract_to_tmp64()
1291 iov_iter_discard(&call->def_iter, READ, size); in afs_extract_discard()
1296 afs_extract_begin(call, call->buffer, size); in afs_extract_to_buf()
1307 return READ_ONCE(call->state) == state; in afs_check_call_state()
1316 spin_lock_bh(&call->state_lock); in afs_set_call_state()
1317 if (call->state == from) { in afs_set_call_state()
1318 call->state = to; in afs_set_call_state()
1322 spin_unlock_bh(&call->state_lock); in afs_set_call_state()
1332 spin_lock_bh(&call->state_lock); in afs_set_call_complete()
1333 state = call->state; in afs_set_call_complete()
1335 call->abort_code = remote_abort; in afs_set_call_complete()
1336 call->error = error; in afs_set_call_complete()
1337 call->state = AFS_CALL_COMPLETE; in afs_set_call_complete()
1342 spin_unlock_bh(&call->state_lock); in afs_set_call_complete()
1346 /* Asynchronous calls have two refs to release - one from the alloc and in afs_set_call_complete()
1347 * one queued with the work item - and we can't just deallocate the in afs_set_call_complete()
1350 if (call->drop_ref) in afs_set_call_complete()
1391 atomic_inc(&net->servers_outstanding); in afs_inc_servers_outstanding()
1396 if (atomic_dec_and_test(&net->servers_outstanding)) in afs_dec_servers_outstanding()
1397 wake_up_var(&net->servers_outstanding); in afs_dec_servers_outstanding()
1402 return list_empty(&server->probe_link); in afs_is_probing_server()
1410 refcount_inc(&slist->usage); in afs_get_serverlist()
1463 atomic_inc(&vlserver->usage); in afs_get_vlserver()
1470 atomic_inc(&vllist->usage); in afs_get_vlserverlist()
1539 u32 num_cleaned; /* Number of ACEs removed due to subject removal */
1541 #define YFS_ACL_WANT_ACL 0x01 /* Set if caller wants ->acl */
1542 #define YFS_ACL_WANT_VOL_ACL 0x02 /* Set if caller wants ->vol_acl */
1559 return &vnode->vfs_inode; in AFS_VNODE_TO_I()
1563 * Note that a dentry got changed. We need to set d_fsdata to the data version
1571 if (!op->error) in afs_update_dentry_version()
1572 dentry->d_fsdata = in afs_update_dentry_version()
1573 (void *)(unsigned long)dir_vp->scb.status.data_version; in afs_update_dentry_version()
1577 * Set the file size and block count. Estimate the number of 512 bytes blocks
1582 i_size_write(&vnode->vfs_inode, size); in afs_set_i_size()
1583 vnode->vfs_inode.i_blocks = ((size + 1023) >> 10) << 1; in afs_set_i_size()
1594 if (dvp->dv_before + dvp->dv_delta != dvp->scb.status.data_version) in afs_check_dir_conflict()
1595 op->flags |= AFS_OPERATION_DIR_CONFLICT; in afs_check_dir_conflict()
1600 trace_afs_io_error(call->debug_id, -EIO, where); in afs_io_error()
1601 return -EIO; in afs_io_error()
1606 trace_afs_file_error(vnode, -EIO, where); in afs_bad()
1607 return -EIO; in afs_bad()
1617 printk("[%-6.6s] "FMT"\n", current->comm ,##__VA_ARGS__)