• Sachin Bhamare's avatar
    nfsd: fix pNFS return on close semantics · 8287f009
    Sachin Bhamare authored
    For the sake of forgetful clients, the server should return the layouts
    to the file system on 'last close' of a file (assuming that there are no
    delegations outstanding to that particular client) or on delegreturn
    (assuming that there are no opens on a file from that particular
    client).
    
    In theory the information is all there in current data structures, but
    it's not efficiently available; nfs4_file->fi_ref includes references on
    the file across all clients, but we need a per-(client, file) count.
    Walking through lots of stateid's to calculate this on each close or
    delegreturn would be painful.
    
    This patch introduces infrastructure to maintain per-client opens and
    delegation counters on a per-file basis.
    
    [hch: ported to the mainline pNFS support, merged various fixes from Jeff]
    Signed-off-by: default avatarSachin Bhamare <sachin.bhamare@primarydata.com>
    Signed-off-by: default avatarJeff Layton <jlayton@primarydata.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    8287f009
nfs4state.c 170 KB