Catalin Marinas
3028efe03b
NFS: Fix nfs4_lock_state refcounting in nfs4_alloc_{lock,unlock}data()
...
Commit 7b587e1a5a6c ("NFS: use locks_copy_lock() to copy locks.")
changed the lock copying from memcpy() to the dedicated
locks_copy_lock() function. The latter correctly increments the
nfs4_lock_state.ls_count via nfs4_fl_copy_lock(), however, this refcount
has already been incremented in the nfs4_alloc_{lock,unlock}data().
Kmemleak subsequently reports an unreferenced nfs4_lock_state object as
below (arm64 platform):
unreferenced object 0xffff8000fce0b000 (size 256):
comm "systemd-sysuser", pid 1608, jiffies 4294892825 (age 32.348s)
hex dump (first 32 bytes):
20 57 4c fb 00 80 ff ff 20 57 4c fb 00 80 ff ff WL..... WL.....
00 57 4c fb 00 80 ff ff 01 00 00 00 00 00 00 00 .WL.............
backtrace:
[<000000000d15010d>] kmem_cache_alloc+0x178/0x208
[<00000000d7c1d264>] nfs4_set_lock_state+0x124/0x1f0
[<000000009c867628>] nfs4_proc_lock+0x90/0x478
[<000000001686bd74>] do_setlk+0x64/0xe8
[<00000000e01500d4>] nfs_lock+0xe8/0x1f0
[<000000004f387d8d>] vfs_lock_file+0x18/0x40
[<00000000656ab79b>] do_lock_file_wait+0x68/0xf8
[<00000000f17c4a4b>] fcntl_setlk+0x224/0x280
[<0000000052a242c6>] do_fcntl+0x418/0x730
[<000000004f47291a>] __arm64_sys_fcntl+0x84/0xd0
[<00000000d6856e01>] el0_svc_common+0x80/0xf0
[<000000009c4bd1df>] el0_svc_handler+0x2c/0x80
[<00000000b1a0d479>] el0_svc+0x8/0xc
[<0000000056c62a0f>] 0xffffffffffffffff
This patch removes the original refcount_inc(&lsp->ls_count) that was
paired with the memcpy() lock copying.
Fixes: 7b587e1a5a6c ("NFS: use locks_copy_lock() to copy locks.")
Cc: <stable@vger.kernel.org> # 5.0.x-
Cc: NeilBrown <neilb@suse.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
2019-03-18 13:14:24 -04:00
..
2019-03-17 09:10:56 -07:00
2018-08-22 10:52:51 -07:00
2019-03-12 14:08:19 -07:00
2019-03-07 18:32:01 -08:00
2019-01-04 13:13:47 -08:00
2019-03-12 14:53:57 -07:00
2018-11-30 16:00:58 +00:00
2019-03-05 18:55:17 +01:00
2019-03-14 19:32:36 -05:00
2018-10-30 12:46:25 -07:00
2019-03-09 10:54:24 -08:00
2019-02-11 09:09:02 +01:00
2019-01-24 13:38:30 -05:00
2019-02-03 11:17:31 -08:00
2019-01-25 18:41:52 +08:00
2018-11-23 09:08:17 -05:00
2019-03-07 09:01:33 -08:00
2019-03-12 15:03:21 -07:00
2019-03-15 13:42:53 -07:00
2019-03-07 18:32:01 -08:00
2018-11-30 15:57:31 +00:00
2019-03-12 14:46:26 -07:00
2019-03-09 11:52:11 -08:00
2018-11-30 14:56:14 -08:00
2019-01-04 13:13:47 -08:00
2018-08-17 16:20:28 -07:00
2019-03-12 09:58:03 -07:00
2019-03-12 14:08:19 -07:00
2018-09-29 22:47:48 -04:00
2019-03-01 00:36:57 -05:00
2018-12-02 09:20:34 +01:00
2018-09-20 09:28:49 -05:00
2019-03-12 14:08:19 -07:00
2019-02-13 11:53:45 -05:00
2019-03-18 13:14:24 -04:00
2019-03-12 15:06:54 -07:00
2019-02-06 13:12:15 -05:00
2019-02-21 11:47:23 +01:00
2018-12-28 12:11:47 -08:00
2019-03-05 21:07:13 -08:00
2018-11-18 13:35:19 -08:00
2019-03-12 13:27:20 -07:00
2019-02-13 11:14:46 +01:00
2019-03-16 13:47:14 -07:00
2019-02-12 13:45:53 -08:00
2018-12-18 18:29:15 +01:00
2018-10-31 08:54:14 -07:00
2018-08-02 09:34:02 -07:00
2019-03-16 10:31:02 -07:00
2018-11-10 08:02:40 -05:00
2019-03-13 09:34:35 -07:00
2019-02-21 19:25:36 +01:00
2018-08-17 16:20:27 -07:00
2019-03-15 13:55:30 -07:00
2019-03-05 14:08:26 -08:00
2019-03-05 10:00:35 -08:00
2019-03-07 18:32:01 -08:00
2019-02-18 16:49:36 -08:00
2019-02-24 08:20:17 -07:00
2019-02-28 13:59:41 -07:00
2018-08-27 14:48:48 +02:00
2018-10-29 14:29:58 -07:00
2018-10-03 16:47:43 +02:00
2019-03-01 17:24:48 -08:00
2019-01-30 11:02:11 -08:00
2019-02-15 08:40:11 -07:00
2019-02-01 15:46:24 -08:00
2019-03-07 18:32:01 -08:00
2019-03-07 18:32:01 -08:00
2018-10-03 16:47:43 +02:00
2019-02-28 08:24:23 -07:00
2019-03-08 14:48:40 -08:00
2019-02-28 03:29:26 -05:00
2019-02-28 03:29:37 -05:00
2019-02-28 03:28:53 -05:00
2019-01-21 17:48:13 +01:00
2019-01-22 14:39:38 -07:00
2019-03-05 21:07:13 -08:00
2019-02-28 03:28:53 -05:00
2019-03-12 10:04:01 -07:00
2019-01-03 18:57:57 -08:00
2019-02-24 08:20:17 -07:00
2019-03-12 14:08:19 -07:00
2018-08-02 08:06:55 +09:00
2019-02-28 07:55:37 +01:00
2019-03-12 14:08:19 -07:00
2019-01-30 17:44:07 -05:00
2019-02-15 08:40:11 -07:00
2019-03-12 14:08:19 -07:00
2019-03-12 14:08:19 -07:00
2018-08-21 18:19:09 -07:00
2019-03-12 13:27:20 -07:00
2019-01-30 17:14:50 -05:00
2019-01-30 17:14:50 -05:00
2019-03-12 13:27:20 -07:00
2019-01-03 18:57:57 -08:00
2019-02-07 00:13:27 +01:00
2018-08-17 16:20:28 -07:00
2018-10-03 16:47:43 +02:00
2019-03-12 13:27:20 -07:00
2019-02-01 01:55:45 -05:00
2019-02-07 16:38:35 +01:00
2019-02-28 03:29:38 -05:00
2019-02-07 00:13:27 +01:00
2018-12-28 12:11:51 -08:00
2019-02-07 00:13:27 +01:00
2018-09-18 07:30:48 -04:00