ms-nfs41-client/daemon
Casey Bodley 91609640df pnfs: prepare layout under a single lock
when starting io, both pnfs_read() and pnfs_write() need a guarantee that their range is covered by layout segments.  because we have to drop the lock for LAYOUTGET and GETDEVICEINFO, earlier layout segments may be recalled during this process.  to avoid this, new function pnfs_layout_state_prepare() gets called repeatedly until it can verify under a single lock that 1) the entire desired range is covered with layouts and 2) each of these layouts has an associated device.  whenever pnfs_layout_state_prepare() has to drop its lock for LAYOUTGET or GETDEVICEINFO, it returns PNFS_PENDING

on PNFS_SUCCESS, the caller knows that all segments in the range are valid and can dispatch io to those segments without worrying about recalls, because it still holds the pnfs_layout_state lock

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2012-05-03 11:45:29 -04:00
..
acl.c fixing localdomain_name declaration in acl.c 2012-03-19 15:04:44 -04:00
callback_server.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
callback_xdr.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
daemon_debug.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
daemon_debug.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
delegation.c open and create accept pointer to attributes 2012-03-29 16:16:55 -04:00
delegation.h open and create accept pointer to attributes 2012-03-29 16:16:55 -04:00
ea.c ea: QueryEaInfo support for index, restart, single 2012-05-03 10:58:42 -04:00
from_kernel.h implement getattr for FileNetworkOpenInformation 2012-04-20 12:42:36 -04:00
getattr.c cosmetic: move ea get and set upcalls to separate file 2012-05-03 10:58:01 -04:00
idmap.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
idmap.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
list.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
lock.c locks: serialize lock requests 2012-05-02 18:36:15 -04:00
lookup.c check pathlen on referrals 2012-04-26 16:13:45 -04:00
makefile fresh git tree for public release 2010-10-12 10:15:48 -04:00
mount.c volume: cache volume attributes on mount 2012-04-20 15:03:14 -04:00
name_cache.c increasing namecache size to 256K 2012-05-02 18:53:38 -04:00
name_cache.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
namespace.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
nfs41.h ea: QueryEaInfo support for index, restart, single 2012-05-03 10:58:42 -04:00
nfs41_callback.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
nfs41_client.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
nfs41_compound.c [cosmetic] removed unused define 2012-03-19 15:04:39 -04:00
nfs41_compound.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
nfs41_const.h increasing maxfilename to 255 2012-05-02 18:54:21 -04:00
nfs41_daemon.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
nfs41_ops.c ea: refactor SetEaInfo for use on open 2012-05-03 10:58:24 -04:00
nfs41_ops.h ea: query each superblock for named attr support 2012-04-09 15:01:12 -04:00
nfs41_rpc.c in rpc_reconnect respect original needcb value 2012-03-19 15:04:36 -04:00
nfs41_server.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
nfs41_session.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
nfs41_superblock.c volume: cache volume attributes on mount 2012-04-20 15:03:14 -04:00
nfs41_types.h handling hidden system archive file attributes 2012-04-02 12:49:44 -04:00
nfs41_xdr.c [readdir] make sure buffer produces nul-terminated str 2012-04-26 11:07:27 -04:00
nfs41_xdr.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
open.c use readdir to generate ea list 2012-05-03 10:58:36 -04:00
pnfs.h pnfs: prepare layout under a single lock 2012-05-03 11:45:29 -04:00
pnfs_debug.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
pnfs_device.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
pnfs_io.c pnfs: prepare layout under a single lock 2012-05-03 11:45:29 -04:00
pnfs_layout.c pnfs: prepare layout under a single lock 2012-05-03 11:45:29 -04:00
readdir.c leaving one max_component len constant 2012-04-30 11:57:34 -04:00
readwrite.c pnfs: prepare layout under a single lock 2012-05-03 11:45:29 -04:00
recovery.c open and create accept pointer to attributes 2012-03-29 16:16:55 -04:00
recovery.h license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
service.c build: pacified compiler warnings in x86/x64 2011-11-02 12:08:48 -04:00
service.h first stab at nfsd as a service 2010-10-12 10:36:03 -04:00
setattr.c cosmetic: move ea get and set upcalls to separate file 2012-05-03 10:58:01 -04:00
sources idmap.c for ldap caching and configuration 2010-11-08 12:54:40 -05:00
symlink.c open and create accept pointer to attributes 2012-03-29 16:16:55 -04:00
tree.h replace rbtree implementation with tree.h from freebsd 2010-12-01 10:25:29 -05:00
upcall.c license changed to LGPL: added COPYING file, changed source file comments 2012-03-19 12:24:43 -04:00
upcall.h ea: QueryEaInfo support for index, restart, single 2012-05-03 10:58:42 -04:00
util.c changing error code when path is too long 2012-04-26 11:06:31 -04:00
util.h implement getattr for FileNetworkOpenInformation 2012-04-20 12:42:36 -04:00
volume.c [volume] fixing FsAttributes volume query 2012-04-25 11:37:24 -04:00