Lines Matching +full:loss +full:- +full:of +full:- +full:lock

2  *  Copyright (c) 2001 The Regents of the University of Michigan.
12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
15 * notice, this list of conditions and the following disclaimer in the
17 * 3. Neither the name of the University nor the names of its
22 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
30 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
110 * fields that are of general use to any stateid.
127 * ->cl_lock protects sc_status for open and lock stateids.
128 * ->st_mutex also protect sc_status for open stateids.
129 * ->ls_lock protects sc_status for layout stateids.
151 /* Keep a list of stateids issued by the COPY_NOTIFY, associate it with the
152 * parent OPEN/LOCK/DELEG stateid.
157 stateid_t cp_p_stateid; /* copy of parent's stateid */
158 clientid_t cp_p_clid; /* copy of parent's clid */
171 * might get lost due to connection loss, NFSD purges async copy
208 * the object will either be destroyed (v4.0) or moved to a per-client list of
211 * This object is a superset of the nfs4_stid.
266 per-session otherwise */
276 /* Maximum number of slots per session. This is for sanity-check only.
278 * A large number can be needed to get good throughput on high-latency servers.
283 /* Maximum number of NFSD_SLOT_CACHE_SIZE slots per session */
317 u32 flavor; /* (u32)(-1) used to mean "no valid flavor" */
359 /* Maximum number of slots that nfsd will use in the backchannel */
363 * Representation of a v4.1+ session. These are refcounted in a similar fashion
365 * working on the object (primarily during the processing of compounds).
370 u32 se_cb_slot_avail; /* bitmap of available slots */
375 struct list_head se_all_sessions;/* global list of sessions */
388 /* formatted contents of nfs4_sessionid */
395 /* Length of MD5 digest as hex, plus terminating '\0' */
400 * --------------------------------------------------------------------------
402 * |------------------- ----------------------------------------------------|
404 * | | Lease/lock/share | |
408 * |------------------------------------------------------------------------|
412 * |------------------------------------------------------------------------|
421 * struct nfs4_client - one per client. Clientids live here.
425 * Each nfsd_net_ns object contains a set of these and they are tracked via
427 * per-nfsd_net client_lock spinlock.
429 * References to it are only held during the processing of compounds, and in
430 * certain other operations. In their "resting state" they have a refcount of
434 * These objects can also be destroyed if the client sends certain forms of
450 struct rb_node cl_namenode; /* link into by-name trees */
462 time64_t cl_time; /* time of last lease renewal */
469 atomic_t cl_admin_revoked; /* count of admin-revoked states */
506 /* number of rpc's in progress over an associated session: */
521 struct list_head async_copies; /* list of async copies */
522 spinlock_t async_lock; /* lock for async copies */
535 * from non-volitile storage) upon reboot.
554 * Replay buffer, where the result of the last seqid-mutating operation
574 * A core object that represents either an open or lock owner. The object and
575 * lock owner objects have one of these embedded within them. Refcounts and
595 * that indicates the "owner" of that open. These objects are refcounted.
597 * is a superset of the nfs4_stateowner struct.
606 * is a list of such openowners, to be reaped by the laundromat
611 time64_t oo_time; /* time of placement on so_close_lru */
618 * are held by the lock stateids that are created on its behalf. This object is
619 * a superset of the nfs4_stateowner struct.
637 * Per-client state indicating no. of opens and outstanding delegations
648 * nfs4_file: a file opened by some number of (open) nfs4_stateowners.
650 * These objects are global. nfsd keeps one instance of a nfs4_file per
671 * Each open or lock stateid contributes 0-4 to the counts
675 * + 1 to both of the above if NFS4_SHARE_ACCESS_BOTH is set.
691 * A generic struct representing either a open or lock stateid. The nfs4_client
692 * holds a reference to each of these objects, and they in turn hold a
695 * or lock stateid) or when the client is being destroyed.
697 * In the case of v4.0 open stateids, these objects are preserved for a little
701 * This object is a superset of the nfs4_stid. "ol" stands for "Open or Lock".
763 return (s32)(a->si_generation - b->si_generation) > 0; in nfsd4_stateid_generation_after()
767 * When a client tries to get a lock on a file, we set one of these objects
768 * on the blocking lock. When the lock becomes free, we can then issue a
819 if (!test_and_set_bit(NFSD4_CALLBACK_RUNNING, &cb->cb_flags)) in nfsd4_try_run_cb()
839 refcount_inc(&fi->fi_ref); in get_nfs4_file()
864 cmpxchg(&clp->cl_state, NFSD4_COURTESY, NFSD4_EXPIRABLE); in try_to_expire_client()
865 return clp->cl_state == NFSD4_EXPIRABLE; in try_to_expire_client()