summaryrefslogtreecommitdiffstats
path: root/lib/bug.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2022-03-28 08:36:34 -0400
committerTrond Myklebust <trond.myklebust@hammerspace.com>2022-03-28 08:36:34 -0400
commit7c9d845f0612e5bcd23456a2ec43be8ac43458f1 (patch)
tree6e4ae22ac7fa2cdee6477c86f1d4b3caa6ef7733 /lib/bug.c
parentd02d81efc7564b4d5446a02e0214a164cf00b1f3 (diff)
downloadlinux-7c9d845f0612e5bcd23456a2ec43be8ac43458f1.tar.gz
linux-7c9d845f0612e5bcd23456a2ec43be8ac43458f1.tar.bz2
linux-7c9d845f0612e5bcd23456a2ec43be8ac43458f1.zip
NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
In nfs4_callback_devicenotify(), if we don't find a matching entry for the deviceid, we're left with a pointer to 'struct nfs_server' that actually points to the list of super blocks associated with our struct nfs_client. Furthermore, even if we have a valid pointer, nothing pins the super block, and so the struct nfs_server could end up getting freed while we're using it. Since all we want is a pointer to the struct pnfs_layoutdriver_type, let's skip all the iteration over super blocks, and just use APIs to find the layout driver directly. Reported-by: Xiaomeng Tong <xiam0nd.tong@gmail.com> Fixes: 1be5683b03a7 ("pnfs: CB_NOTIFY_DEVICEID") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'lib/bug.c')
0 files changed, 0 insertions, 0 deletions