NFS: Introduce NFS_ATTR_FATTR_V4_LOCATIONS
authorChuck Lever <chuck.lever@oracle.com>
Thu, 1 Mar 2012 22:01:57 +0000 (17:01 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 2 Mar 2012 22:18:09 +0000 (17:18 -0500)
commit81934ddb8eb62a85b8015c0f2b824a88510965a2
treedb5988884f8a0309b488cba6623b1ed2c31af983
parentbb4dae5e5b5a92f0ffbcc6ac10c5e8afcd87934d
NFS: Introduce NFS_ATTR_FATTR_V4_LOCATIONS

The Linux NFS client must distinguish between referral events (which
it currently supports) and migration events (which it does not yet
support).

In both types of events, an fs_locations array is returned.  But upper
layers, not the XDR layer, should make the distinction between a
referral and a migration.  There really isn't a way for an XDR decoder
function to distinguish the two, in general.

Slightly adjust the FATTR flags returned by decode_fs_locations()
to set NFS_ATTR_FATTR_V4_LOCATIONS only if a non-empty locations
array was returned from the server.  Then have logic in nfs4proc.c
distinguish whether the locations array is for a referral or
something else.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c
fs/nfs/nfs4xdr.c
include/linux/nfs_xdr.h