Patch "NFS: Fix an Oops in pnfs_mark_request_commit()" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    NFS: Fix an Oops in pnfs_mark_request_commit()

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     nfs-fix-an-oops-in-pnfs_mark_request_commit.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3b6190891fc6ff1ad1af3fa523e4a94f37772cdc
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date:   Tue Oct 5 14:05:02 2021 -0400

    NFS: Fix an Oops in pnfs_mark_request_commit()
    
    [ Upstream commit f0caea8882a7412a2ad4d8274f0280cdf849c9e2 ]
    
    Olga reports seeing the following Oops when doing O_DIRECT writes to a
    pNFS flexfiles server:
    
    Oops: 0000 [#1] SMP PTI
    CPU: 1 PID: 234186 Comm: kworker/u8:1 Not tainted 5.15.0-rc4+ #4
    Hardware name: Red Hat KVM/RHEL-AV, BIOS 1.13.0-2.module+el8.3.0+7353+9de0a3cc 04/01/2014
    Workqueue: nfsiod rpc_async_release [sunrpc]
    RIP: 0010:nfs_mark_request_commit+0x12/0x30 [nfs]
    Code: ff ff be 03 00 00 00 e8 ac 34 83 eb e9 29 ff ff
    ff e8 22 bc d7 eb 66 90 0f 1f 44 00 00 48 85 f6 74 16 48 8b 42 10 48
    8b 40 18 <48> 8b 40 18 48 85 c0 74 05 e9 70 fc 15 ec 48 89 d6 e9 68 ed
    ff ff
    RSP: 0018:ffffa82f0159fe00 EFLAGS: 00010286
    RAX: 0000000000000000 RBX: ffff8f3393141880 RCX: 0000000000000000
    RDX: ffffa82f0159fe08 RSI: ffff8f3381252500 RDI: ffff8f3393141880
    RBP: ffff8f33ac317c00 R08: 0000000000000000 R09: ffff8f3487724cb0
    R10: 0000000000000008 R11: 0000000000000001 R12: 0000000000000001
    R13: ffff8f3485bccee0 R14: ffff8f33ac317c10 R15: ffff8f33ac317cd8
    FS:  0000000000000000(0000) GS:ffff8f34fbc80000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000018 CR3: 0000000122120006 CR4: 0000000000770ee0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     nfs_direct_write_completion+0x13b/0x250 [nfs]
     rpc_free_task+0x39/0x60 [sunrpc]
     rpc_async_release+0x29/0x40 [sunrpc]
     process_one_work+0x1ce/0x370
     worker_thread+0x30/0x380
     ? process_one_work+0x370/0x370
     kthread+0x11a/0x140
     ? set_kthread_struct+0x40/0x40
     ret_from_fork+0x22/0x30
    
    Reported-by: Olga Kornievskaia <aglo@xxxxxxxxx>
    Fixes: 9c455a8c1e14 ("NFS/pNFS: Clean up pNFS commit operations")
    Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index 132a345e93731..0212fe32e63aa 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
@@ -515,7 +515,7 @@ pnfs_mark_request_commit(struct nfs_page *req, struct pnfs_layout_segment *lseg,
 {
 	struct pnfs_ds_commit_info *fl_cinfo = cinfo->ds;
 
-	if (!lseg || !fl_cinfo->ops->mark_request_commit)
+	if (!lseg || !fl_cinfo->ops || !fl_cinfo->ops->mark_request_commit)
 		return false;
 	fl_cinfo->ops->mark_request_commit(req, lseg, cinfo, ds_commit_idx);
 	return true;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux