• Jeff Layton's avatar
    nfsd: add a new EXPORT_OP_NOWCC flag to struct export_operations · daab110e
    Jeff Layton authored
    With NFSv3 nfsd will always attempt to send along WCC data to the
    client. This generally involves saving off the in-core inode information
    prior to doing the operation on the given filehandle, and then issuing a
    vfs_getattr to it after the op.
    
    Some filesystems (particularly clustered or networked ones) have an
    expensive ->getattr inode operation. Atomicity is also often difficult
    or impossible to guarantee on such filesystems. For those, we're best
    off not trying to provide WCC information to the client at all, and to
    simply allow it to poll for that information as needed with a GETATTR
    RPC.
    
    This patch adds a new flags field to struct export_operations, and
    defines a new EXPORT_OP_NOWCC flag that filesystems can use to indicate
    that nfsd should not attempt to provide WCC info in NFSv3 replies. It
    also adds a blurb about the new flags field and flag to the exporting
    documentation.
    
    The server will also now skip collecting this information for NFSv2 as
    well, since that info is never used there anyway.
    
    Note that this patch does not add this flag to any filesystem
    export_operations structures. This was originally developed to allow
    reexporting nfs via nfsd.
    
    Other filesystems may want to consider enabling this flag too. It's hard
    to tell however which ones have export operations to enable export via
    knfsd and which ones mostly rely on them for open-by-filehandle support,
    so I'm leaving that up to the individual maintainers to decide. I am
    cc'ing the relevant lists for those filesystems that I think may want to
    consider adding this though.
    
    Cc: HPDD-discuss@lists.01.org
    Cc: ceph-devel@vger.kernel.org
    Cc: cluster-devel@redhat.com
    Cc: fuse-devel@lists.sourceforge.net
    Cc: ocfs2-devel@oss.oracle.com
    Signed-off-by: default avatarJeff Layton <jeff.layton@primarydata.com>
    Signed-off-by: default avatarLance Shelton <lance.shelton@hammerspace.com>
    Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    daab110e
nfsfh.h 7.77 KB