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.
88 * fields that are of general use to any stateid.
105 * ->cl_lock protects sc_status for open and lock stateids.
106 * ->st_mutex also protect sc_status for open stateids.
107 * ->ls_lock protects sc_status for layout stateids.
129 /* Keep a list of stateids issued by the COPY_NOTIFY, associate it with the
130 * parent OPEN/LOCK/DELEG stateid.
135 stateid_t cp_p_stateid; /* copy of parent's stateid */
136 clientid_t cp_p_clid; /* copy of parent's clid */
149 * might get lost due to connection loss, NFSD purges async copy
190 * the object will either be destroyed (v4.0) or moved to a per-client list of
193 * This object is a superset of the nfs4_stid.
238 per-session otherwise */
248 /* Maximum number of slots per session. This is for sanity-check only.
250 * A large number can be needed to get good throughput on high-latency servers.
255 /* Maximum number of NFSD_SLOT_CACHE_SIZE slots per session */
288 u32 flavor; /* (u32)(-1) used to mean "no valid flavor" */
330 /* Maximum number of slots that nfsd will use in the backchannel */
334 * Representation of a v4.1+ session. These are refcounted in a similar fashion
336 * working on the object (primarily during the processing of compounds).
341 u32 se_cb_slot_avail; /* bitmap of available slots */
346 struct list_head se_all_sessions;/* global list of sessions */
359 /* formatted contents of nfs4_sessionid */
366 #define HEXDIR_LEN 33 /* hex version of 16 byte md5 of cl_name plus '\0' */
370 * --------------------------------------------------------------------------
372 * |------------------- ----------------------------------------------------|
374 * | | Lease/lock/share | |
378 * |------------------------------------------------------------------------|
382 * |------------------------------------------------------------------------|
391 * struct nfs4_client - one per client. Clientids live here.
395 * Each nfsd_net_ns object contains a set of these and they are tracked via
397 * per-nfsd_net client_lock spinlock.
399 * References to it are only held during the processing of compounds, and in
400 * certain other operations. In their "resting state" they have a refcount of
404 * These objects can also be destroyed if the client sends certain forms of
420 struct rb_node cl_namenode; /* link into by-name trees */
432 time64_t cl_time; /* time of last lease renewal */
439 atomic_t cl_admin_revoked; /* count of admin-revoked states */
477 /* number of rpc's in progress over an associated session: */
492 struct list_head async_copies; /* list of async copies */
493 spinlock_t async_lock; /* lock for async copies */
507 * from non-volitile storage) upon reboot.
526 * Replay buffer, where the result of the last seqid-mutating operation
546 * A core object that represents either an open or lock owner. The object and
547 * lock owner objects have one of these embedded within them. Refcounts and
567 * that indicates the "owner" of that open. These objects are refcounted.
569 * is a superset of the nfs4_stateowner struct.
578 * is a list of such openowners, to be reaped by the laundromat
583 time64_t oo_time; /* time of placement on so_close_lru */
590 * are held by the lock stateids that are created on its behalf. This object is
591 * a superset of the nfs4_stateowner struct.
609 * Per-client state indicating no. of opens and outstanding delegations
620 * nfs4_file: a file opened by some number of (open) nfs4_stateowners.
622 * These objects are global. nfsd keeps one instance of a nfs4_file per
643 * Each open or lock stateid contributes 0-4 to the counts
647 * + 1 to both of the above if NFS4_SHARE_ACCESS_BOTH is set.
662 * A generic struct representing either a open or lock stateid. The nfs4_client
663 * holds a reference to each of these objects, and they in turn hold a
666 * or lock stateid) or when the client is being destroyed.
668 * In the case of v4.0 open stateids, these objects are preserved for a little
672 * This object is a superset of the nfs4_stid. "ol" stands for "Open or Lock".
734 return (s32)(a->si_generation - b->si_generation) > 0; in nfsd4_stateid_generation_after()
738 * When a client tries to get a lock on a file, we set one of these objects
739 * on the blocking lock. When the lock becomes free, we can then issue a
799 refcount_inc(&fi->fi_ref); in get_nfs4_file()
824 cmpxchg(&clp->cl_state, NFSD4_COURTESY, NFSD4_EXPIRABLE); in try_to_expire_client()
825 return clp->cl_state == NFSD4_EXPIRABLE; in try_to_expire_client()