Commit afa8b2f
nfsd: check that server is running in unlock_filesystem
If we are trying to unlock the filesystem via an administrative
interface and nfsd isn't running, it crashes the server.
[ 59.445578] Modules linked in: nfsd nfs_acl lockd grace nfs_localio ext4 crc16 mbcache jbd2 overlay uinput snd_seq_dummy snd_hrtimer qrtr rfkill vfat fat uvcvideo snd_hda_codec_generic videobuf2_vmalloc videobuf2_memops uvc videobuf2_v4l2 videobuf2_common snd_hda_intel snd_intel_dspcfg snd_hda_codec videodev snd_hda_core snd_hwdep mc snd_seq snd_seq_device snd_pcm snd_timer snd soundcore sg loop auth_rpcgss vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci vsock xfs ghash_ce nvme e1000e nvme_core nvme_keyring nvme_auth hkdf sr_mod cdrom vmwgfx drm_ttm_helper ttm 8021q garp stp llc mrp sunrpc dm_mirror dm_region_hash dm_log iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse dm_multipath dm_mod nfnetlink
[ 59.451979] CPU: 4 UID: 0 PID: 5193 Comm: bash Kdump: loaded Tainted: G B 6.18.0-rc4+ torvalds#74 PREEMPT(voluntary)
[ 59.453311] Tainted: [B]=BAD_PAGE
[ 59.453913] Hardware name: VMware, Inc. VMware20,1/VBSA, BIOS VMW201.00V.24006586.BA64.2406042154 06/04/2024
[ 59.454869] pstate: 6140000 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[ 59.455463] pc : nfsd4_revoke_states+0x1b4/0x898 [nfsd]
[ 59.456069] lr : nfsd4_revoke_states+0x19c/0x898 [nfsd]
[ 59.456701] sp : ffff80008cd67900
[ 59.457115] x29: ffff80008cd679d0 x28: 1fffe00016a53f84 x27: dfff800000000000
[ 59.458006] x26: 04b800ef00000000 x25: 1fffe00016a53f80 x24: ffff0000a796ea00
[ 59.458872] x23: ffff0000b89d6000 x22: ffff0000b6c36900 x21: ffff0000b6c36580
[ 59.459738] x20: ffff80008cd67990 x19: ffff0000b6c365c0 x18: 0000000000000000
[ 59.460602] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[ 59.461480] x14: 0000000000000000 x13: 0000000000000001 x12: ffff7000119acf13
[ 59.462272] x11: 1ffff000119acf12 x10: ffff7000119acf12 x9 : dfff800000000000
[ 59.463002] x8 : ffff80008cd67810 x7 : 0000000000000000 x6 : 0097001de0000000
[ 59.463732] x5 : 0000000000000004 x4 : ffff0000b5818000 x3 : 04b800ef00000004
[ 59.464368] x2 : 0000000000000000 x1 : 0000000000000005 x0 : 04b800ef00000000
[ 59.465072] Call trace:
[ 59.465308] nfsd4_revoke_states+0x1b4/0x898 [nfsd] (P)
[ 59.465830] write_unlock_fs+0x258/0x440 [nfsd]
[ 59.466278] nfsctl_transaction_write+0xb0/0x120 [nfsd]
[ 59.466780] vfs_write+0x1f0/0x938
[ 59.467088] ksys_write+0xfc/0x1f8
[ 59.467395] __arm64_sys_write+0x74/0xb8
[ 59.467746] invoke_syscall.constprop.0+0xdc/0x1e8
[ 59.468177] do_el0_svc+0x154/0x1d8
[ 59.468489] el0_svc+0x40/0xe0
[ 59.468767] el0t_64_sync_handler+0xa0/0xe8
[ 59.469138] el0t_64_sync+0x1ac/0x1b0
[ 59.469472] Code: 9100134 92400865 d343fc66 110004a1 (38fb68c)
[ 59.470012] SMP: stopping secondary CPUs
-- v2 changes to address Neil's comments/suggestions
changing nfsd4_revoke_states() to take in nfsd_net
holding nfsd_mutex over nfsd4_revoke_states (making sure to unlock
and cleanup before return)
Fixes: 1ac3629 ("nfsd: prepare for supporting admin-revocation of state")
Signed-off-by: Olga Kornievskaia <[email protected]>1 parent 187d080 commit afa8b2f
3 files changed
+13
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1769 | 1769 | | |
1770 | 1770 | | |
1771 | 1771 | | |
1772 | | - | |
| 1772 | + | |
1773 | 1773 | | |
1774 | | - | |
1775 | 1774 | | |
1776 | 1775 | | |
1777 | 1776 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
259 | 259 | | |
260 | 260 | | |
261 | 261 | | |
| 262 | + | |
262 | 263 | | |
263 | 264 | | |
264 | 265 | | |
| |||
285 | 286 | | |
286 | 287 | | |
287 | 288 | | |
288 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
289 | 298 | | |
290 | 299 | | |
291 | 300 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
841 | 841 | | |
842 | 842 | | |
843 | 843 | | |
844 | | - | |
| 844 | + | |
845 | 845 | | |
846 | | - | |
| 846 | + | |
847 | 847 | | |
848 | 848 | | |
849 | 849 | | |
| |||
0 commit comments