projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
133a48a
)
NFS: Fix an Oops in pnfs_mark_request_commit()
author
Trond Myklebust
<trond.myklebust@hammerspace.com>
Tue, 5 Oct 2021 18:05:02 +0000
(14:05 -0400)
committer
Trond Myklebust
<trond.myklebust@hammerspace.com>
Wed, 20 Oct 2021 22:09:53 +0000
(18:09 -0400)
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@umich.edu>
Fixes: 9c455a8c1e14 ("NFS/pNFS: Clean up pNFS commit operations")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/pnfs.h
patch
|
blob
|
history
diff --git
a/fs/nfs/pnfs.h
b/fs/nfs/pnfs.h
index d810ae674f4e8aba15c34d2bf730a8c95d0aa5db..a0f6ff094b3a4e94654268749c3c41c9d4101c79 100644
(file)
--- a/
fs/nfs/pnfs.h
+++ b/
fs/nfs/pnfs.h
@@
-517,7
+517,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;