• Trond Myklebust's avatar
    pNFS: Fix missing layoutreturn calls · 13c13a6a
    Trond Myklebust authored
    The layoutreturn code currently relies on pnfs_put_lseg() to initiate the
    RPC call when conditions are right. A problem arises when we want to
    free the layout segment from inside an inode->i_lock section (e.g. in
    pnfs_clear_request_commit()), since we cannot sleep.
    
    The workaround is to move the actual call to pnfs_send_layoutreturn()
    to pnfs_put_layout_hdr(), which doesn't have this restriction.
    Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
    13c13a6a
pnfs.c 63.4 KB