]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Revert "nfs: take extra reference to fl->fl_file when running a LOCKU operation"
authorDan Duval <dan.duval@oracle.com>
Wed, 25 Nov 2015 23:39:48 +0000 (18:39 -0500)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Thu, 26 Nov 2015 04:07:34 +0000 (20:07 -0800)
Orabug: 22186705

This reverts commit 0ea14034782db03efc55a7d8dbfa7cd140e7e959.

This commit has been seen to cause hard hangs or crashes when
flock(..., LOCK_EX) is attempted on an NFSv4-mounted filesystem.

Signed-off-by: Dan Duval <dan.duval@oracle.com>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
fs/nfs/nfs4proc.c

index 4016ad72dbdcd99311ce1c05a4ec4d49878422c1..55e1e3af23a3d3f2313f977b185eb8c3f8ccbc6d 100644 (file)
@@ -5402,7 +5402,6 @@ static struct nfs4_unlockdata *nfs4_alloc_unlockdata(struct file_lock *fl,
        atomic_inc(&lsp->ls_count);
        /* Ensure we don't close file until we're done freeing locks! */
        p->ctx = get_nfs_open_context(ctx);
-       get_file(fl->fl_file);
        memcpy(&p->fl, fl, sizeof(p->fl));
        p->server = NFS_SERVER(inode);
        return p;
@@ -5414,7 +5413,6 @@ static void nfs4_locku_release_calldata(void *data)
        nfs_free_seqid(calldata->arg.seqid);
        nfs4_put_lock_state(calldata->lsp);
        put_nfs_open_context(calldata->ctx);
-       fput(calldata->fl.fl_file);
        kfree(calldata);
 }