linux/fs/nfs
Boaz Harrosh b6c05f1693 pnfs-obj: objio_osd device information retrieval and caching
When a new layout is received in objio_alloc_lseg all device_ids
referenced are retrieved. The device information is queried for from MDS
and then the osd_device is looked-up from the osd-initiator library. The
devices are cached in a per-mount-point list, for later use. At unmount
all devices are "put" back to the library.

objlayout_get_deviceinfo(), objlayout_put_deviceinfo() middleware
API for retrieving device information given a device_id.

TODO: The device cache can get big. Cap its size. Keep an LRU and start
      to return devices which were not used, when list gets to big, or
      when new entries allocation fail.

[pnfs-obj: Bugs in new global-device-cache code]
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
[gfp_flags]
[use global device cache]
[use layout driver in global device cache]
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
2011-05-29 20:53:33 +03:00
..
objlayout pnfs-obj: objio_osd device information retrieval and caching 2011-05-29 20:53:33 +03:00
cache_lib.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cache_lib.h NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
callback_proc.c pnfs: Use byte-range for cb_layoutrecall 2011-05-29 20:52:34 +03:00
callback_xdr.c pnfs: CB_NOTIFY_DEVICEID 2011-05-29 20:52:31 +03:00
callback.c NFS do not find client in NFSv4 pg_authenticate 2011-01-25 15:26:51 -05:00
callback.h pnfs: CB_NOTIFY_DEVICEID 2011-05-29 20:52:31 +03:00
client.c NFSv4.1: purge deviceid cache on nfs_free_client 2011-05-29 20:50:42 +03:00
delegation.c NFS: Fix an NFS client lockdep issue 2011-01-28 13:37:09 -05:00
delegation.h NFS: Move cl_delegations to the nfs_server struct 2011-01-06 14:57:46 -05:00
dir.c SUNRPC: introduce xdr_init_decode_pages 2011-05-29 20:52:32 +03:00
direct.c NFS: account direct-io into task io accounting 2011-03-11 15:39:27 -05:00
dns_resolve.c sunrpc: use seconds since boot in expiry cache 2010-09-07 19:21:20 -04:00
dns_resolve.h NFS: Use kernel DNS resolver [ver #2] 2010-08-11 17:11:28 +00:00
file.c Fix common misspellings 2011-03-31 11:26:23 -03: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: Squelch compiler warning 2010-05-14 15:09:31 -04:00
fscache.h NFS: Propagate 'fsc' mount option through automounts 2009-09-23 14:36:39 -04:00
getroot.c Merge branch 'nfs-for-2.6.39' into nfs-for-next 2011-03-24 17:03:14 -04:00
idmap.c NFSv4: Send unmapped uid/gids to the server when using auth_sys 2011-03-11 15:39:27 -05:00
inode.c Merge branch 'nfs-for-2.6.39' into nfs-for-next 2011-03-24 17:03:14 -04:00
internal.h Merge branch 'nfs-for-2.6.39' into nfs-for-next 2011-03-24 17:03:14 -04:00
iostat.h NFS: Squelch compiler warning in nfs_add_server_stats() 2010-05-14 15:09:31 -04:00
Kconfig pnfs-obj: objlayoutdriver module skeleton 2011-05-29 20:52:35 +03:00
Makefile pnfs-obj: objlayoutdriver module skeleton 2011-05-29 20:52:35 +03:00
mount_clnt.c NFS: Remove redundant unlikely() 2010-12-21 11:51:23 -05:00
namespace.c NFS: Remove unused argument from nfs_find_best_sec() 2011-04-12 19:34:23 -04:00
nfs2xdr.c Merge branch 'bugfixes' into nfs-for-2.6.38 2011-01-10 14:48:02 -05:00
nfs3acl.c NFS: Prevent memory allocation failure in nfsacl_encode() 2011-01-25 15:24:47 -05:00
nfs3proc.c NFS: lookup supports alternate client 2011-03-24 13:52:41 -04:00
nfs3xdr.c NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!" 2011-01-25 15:24:47 -05:00
nfs4_fs.h NFSv4.1: Don't loop forever in nfs4_proc_create_session 2011-04-24 14:28:18 -04:00
nfs4filelayout.c SUNRPC: introduce xdr_init_decode_pages 2011-05-29 20:52:32 +03:00
nfs4filelayout.h NFSv4.1: purge deviceid cache on nfs_free_client 2011-05-29 20:50:42 +03:00
nfs4filelayoutdev.c SUNRPC: introduce xdr_init_decode_pages 2011-05-29 20:52:32 +03:00
nfs4namespace.c nfs: nfs_do_{ref,sub}mount() superblock argument is redundant 2011-03-16 16:48:06 -04:00
nfs4proc.c NFSv41: Resend on NFS4ERR_RETRY_UNCACHED_REP 2011-05-11 14:01:33 -04:00
nfs4renewd.c NFSv4.1: new flag for state renewal check 2011-03-11 15:38:41 -05:00
nfs4state.c NFSv4: Ensure that clientid and session establishment can time out 2011-04-24 14:29:33 -04:00
nfs4xdr.c NFS: Return meaningful status from decode_secinfo() 2011-04-27 16:17:29 -04:00
nfsroot.c NFS: NFSROOT should default to "proto=udp" 2011-03-11 15:38:07 -05:00
pagelist.c NFS: Fix a hang in the writeback path 2011-03-27 17:48:07 +02:00
pnfs_dev.c NFSv4.1: use layout driver in global device cache 2011-05-29 20:52:31 +03:00
pnfs.c pnfs: Use byte-range for cb_layoutrecall 2011-05-29 20:52:34 +03:00
pnfs.h pnfs: Use byte-range for cb_layoutrecall 2011-05-29 20:52:34 +03:00
proc.c NFS: lookup supports alternate client 2011-03-24 13:52:41 -04:00
read.c pnfs: Use byte-range for layoutget 2011-05-29 20:52:32 +03:00
super.c pnfs: client stats 2011-05-29 20:52:34 +03:00
symlink.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sysctl.c NFS: new idmapper 2010-10-07 18:48:49 -04:00
unlink.c nfs: store devname at disconnected NFS roots 2011-03-16 16:44:24 -04:00
write.c pnfs: Use byte-range for layoutget 2011-05-29 20:52:32 +03:00