2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-25 05:34:00 +08:00
linux-next/fs/nfs
Benny Halevy 510b81756f nfs41: find slot
Find a free slot using bitmap-based allocation.
Use the optimized ffz function to find a zero bit
in the bitmap that indicates a free slot, starting
the search from the 'lowest_free_slotid' position.

If found, mark the slot as used in the bitmap, get
the slot's slotid and seqid, and update max_slotid
to be used by the SEQUENCE operation.

Also, update lowest_free_slotid for next search.

If no free slot was found the caller has to wait
for a free slot (outside the scope of this function)

Signed-off-by: Benny Halevy <bhalevy@panasas.com>
[nfs41: find slot return slotid]
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
[use find_first_zero_bit for nfs4_find_slot as per review comment 21/85.]
[use NFS4_MAX_SLOT_TABLE rather than NFS4_NO_SLOT]
[nfs41: rpc_sleep_on slot_tbl_waitq must be called under slot_tbl_lock]
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2009-06-17 10:46:37 -07:00
..
callback_proc.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
callback_xdr.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
callback.c NFS: Start PF_INET6 callback listener only if IPv6 support is available 2009-03-28 16:02:43 -04:00
callback.h NFS: Start PF_INET6 callback listener only if IPv6 support is available 2009-03-28 16:02:43 -04:00
client.c nfs41: introduce nfs4_call_sync 2009-06-17 10:46:28 -07:00
delegation.c NFSv4: Convert delegation->type field to fmode_t 2008-12-23 15:21:53 -05:00
delegation.h NFSv4: Convert delegation->type field to fmode_t 2008-12-23 15:21:53 -05:00
dir.c nfs: Fix NFS v4 client handling of MAY_EXEC in nfs_permission. 2009-05-18 20:11:12 -07:00
direct.c NFS: Use NFSDBG_FILE for all fops 2008-07-09 12:09:04 -04:00
file.c NFS: Close page_mkwrite() races 2009-05-02 19:42:39 -07:00
fscache-index.c NFS: Add read context retention for FS-Cache to call back with 2009-04-03 16:42:44 +01:00
fscache.c NFS: Store pages from an NFS inode into a local cache 2009-04-03 16:42:45 +01:00
fscache.h NFS: Display local caching state 2009-04-03 16:42:47 +01:00
getroot.c NFS: Fix the type of struct nfs_fattr->mode 2009-03-11 14:10:26 -04:00
idmap.c nfs: fix sparse warnings 2008-02-20 16:15:44 -05:00
inode.c NFS: Use local disk inode cache 2009-04-03 16:42:43 +01:00
internal.h nfs41: introduce nfs4_call_sync 2009-06-17 10:46:28 -07:00
iostat.h NFS: Add some new I/O counters for FS-Cache doing things for NFS 2009-04-03 16:42:43 +01:00
Kconfig nfs41: Add Kconfig symbols for NFSv4.1 2009-06-17 10:46:13 -07:00
Makefile NFS: Define and create server-level objects 2009-04-03 16:42:42 +01:00
mount_clnt.c NFS: "[no]resvport" mount option changes mountd client too 2008-12-23 15:21:37 -05:00
namespace.c nfs: BUG_ON in nfs_follow_mountpoint 2008-10-07 18:15:16 -04:00
nfs2xdr.c NFS: Fix the type of struct nfs_fattr->mode 2009-03-11 14:10:26 -04:00
nfs3acl.c NFSv3: Fix posix ACL code 2009-03-10 20:33:18 -04:00
nfs3proc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2009-04-02 21:09:10 -07:00
nfs3xdr.c NFS: Fix the XDR iovec calculation in nfs3_xdr_setaclargs 2009-04-21 07:46:49 -07:00
nfs4_fs.h nfs41: sessions client infrastructure 2009-06-17 10:46:19 -07:00
nfs4namespace.c NFS: Fix misparsing of nfsv4 fs_locations attribute (take 2) 2009-03-10 20:33:17 -04:00
nfs4proc.c nfs41: find slot 2009-06-17 10:46:37 -07:00
nfs4renewd.c NFSv4: Return unreferenced delegations more promptly 2008-12-23 15:21:52 -05:00
nfs4state.c nfs41: translate NFS4ERR_MINOR_VERS_MISMATCH to EPROTONOSUPPORT 2009-06-17 10:46:18 -07:00
nfs4xdr.c nfs41: xdr {encode,decode}_sequence 2009-06-17 10:46:36 -07:00
nfsroot.c nfs: fix build error in nfsroot with initconst 2009-05-26 14:51:00 -04:00
pagelist.c NFS: Throttle page dirtying while we're flushing to disk 2009-03-11 14:10:30 -04:00
proc.c NFS: Optimise NFS close() 2009-03-19 15:35:50 -04:00
read.c nfs41: set up seq_res.sr_slotid 2009-06-17 10:46:30 -07:00
super.c nfs41: add mount command option minorversion 2009-06-17 10:46:15 -07:00
symlink.c nfs: remove unnecessary NFS_NEED_* defines 2008-04-23 16:13:37 -04:00
sysctl.c [PATCH] nfs: fix congestion control 2007-03-16 19:25:05 -07:00
unlink.c nfs41: set up seq_res.sr_slotid 2009-06-17 10:46:30 -07:00
write.c nfs41: set up seq_res.sr_slotid 2009-06-17 10:46:30 -07:00