All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Benjamin Coddington <bcodding@redhat.com>,
	Jeff Layton <jlayton@redhat.com>,
	Trond Myklebust <trond.myklebust@primarydata.com>,
	Sasha Levin <alexander.levin@verizon.com>
Subject: [PATCH 4.4 29/49] nfs: Dont take a reference on fl->fl_file for LOCK operation
Date: Thu,  7 Dec 2017 14:07:23 +0100	[thread overview]
Message-ID: <20171207124707.826264155@linuxfoundation.org> (raw)
In-Reply-To: <20171207124703.742654162@linuxfoundation.org>

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Benjamin Coddington <bcodding@redhat.com>


[ Upstream commit 4b09ec4b14a168bf2c687e1f598140c3c11e9222 ]

I have reports of a crash that look like __fput() was called twice for
a NFSv4.0 file.  It seems possible that the state manager could try to
reclaim a lock and take a reference on the fl->fl_file at the same time the
file is being released if, during the close(), a signal interrupts the wait
for outstanding IO while removing locks which then skips the removal
of that lock.

Since 83bfff23e9ed ("nfs4: have do_vfs_lock take an inode pointer") has
removed the need to traverse fl->fl_file->f_inode in nfs4_lock_done(),
taking that reference is no longer necessary.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/nfs/nfs4proc.c |    3 ---
 1 file changed, 3 deletions(-)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -38,7 +38,6 @@
 #include <linux/mm.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
-#include <linux/file.h>
 #include <linux/string.h>
 #include <linux/ratelimit.h>
 #include <linux/printk.h>
@@ -5738,7 +5737,6 @@ static struct nfs4_lockdata *nfs4_alloc_
 	p->server = server;
 	atomic_inc(&lsp->ls_count);
 	p->ctx = get_nfs_open_context(ctx);
-	get_file(fl->fl_file);
 	memcpy(&p->fl, fl, sizeof(p->fl));
 	return p;
 out_free_seqid:
@@ -5851,7 +5849,6 @@ static void nfs4_lock_release(void *call
 		nfs_free_seqid(data->arg.lock_seqid);
 	nfs4_put_lock_state(data->lsp);
 	put_nfs_open_context(data->ctx);
-	fput(data->fl.fl_file);
 	kfree(data);
 	dprintk("%s: done!\n", __func__);
 }

  parent reply	other threads:[~2017-12-07 13:46 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-07 13:06 [PATCH 4.4 00/49] 4.4.105-stable review Greg Kroah-Hartman
2017-12-07 13:06 ` [PATCH 4.4 01/49] bcache: only permit to recovery read error when cache device is clean Greg Kroah-Hartman
2017-12-07 13:06 ` [PATCH 4.4 02/49] bcache: recover data from backing when data " Greg Kroah-Hartman
2017-12-07 13:06 ` [PATCH 4.4 03/49] uas: Always apply US_FL_NO_ATA_1X quirk to Seagate devices Greg Kroah-Hartman
2017-12-07 13:06 ` [PATCH 4.4 04/49] usb: quirks: Add no-lpm quirk for KY-688 USB 3.1 Type-C Hub Greg Kroah-Hartman
2017-12-07 13:06 ` [PATCH 4.4 05/49] serial: 8250_pci: Add Amazon PCI serial device ID Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 06/49] s390/runtime instrumentation: simplify task exit handling Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 07/49] USB: serial: option: add Quectel BG96 id Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 08/49] ima: fix hash algorithm initialization Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 09/49] s390/pci: do not require AIS facility Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 10/49] selftests/x86/ldt_get: Add a few additional tests for limits Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 11/49] serial: 8250_fintek: Fix rs485 disablement on invalid ioctl() Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 12/49] spi: sh-msiof: Fix DMA transfer size check Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 15/49] usb: phy: tahvo: fix error handling in tahvo_usb_probe() Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 16/49] serial: 8250: Preserve DLD[7:4] for PORT_XR17V35X Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 17/49] x86/entry: Use SYSCALL_DEFINE() macros for sys_modify_ldt() Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 19/49] sysrq : fix Show Regs call trace on ARM Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 20/49] usbip: tools: Install all headers needed for libusbip development Greg Kroah-Hartman
2017-12-08  3:56   ` Ben Hutchings
2017-12-09  6:16     ` alexander.levin
2017-12-09  7:41       ` Greg Kroah-Hartman
2017-12-09  7:41         ` Greg Kroah-Hartman
2017-12-12  0:13         ` alexander.levin
2017-12-12  7:22           ` Greg Kroah-Hartman
2017-12-12  7:22             ` Greg Kroah-Hartman
2017-12-09 17:06     ` Greg Kroah-Hartman
2017-12-09 17:06       ` Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 21/49] perf test attr: Fix ignored test case result Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 22/49] kprobes/x86: Disable preemption in ftrace-based jprobes Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 23/49] net: systemport: Utilize skb_put_padto() Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 24/49] net: systemport: Pad packet before inserting TSB Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 25/49] ARM: OMAP1: DMA: Correct the number of logical channels Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 26/49] vti6: fix device register to report IFLA_INFO_KIND Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 27/49] net/appletalk: Fix kernel memory disclosure Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 28/49] ravb: Remove Rx overflow log messages Greg Kroah-Hartman
2017-12-07 13:07 ` Greg Kroah-Hartman [this message]
2017-12-08  4:18   ` [PATCH 4.4 29/49] nfs: Dont take a reference on fl->fl_file for LOCK operation Ben Hutchings
2017-12-09 17:01     ` Greg Kroah-Hartman
2017-12-09 17:01       ` Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 30/49] KVM: arm/arm64: Fix occasional warning from the timer work function Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 31/49] NFSv4: Fix client recovery when server reboots multiple times Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 32/49] drm/exynos/decon5433: set STANDALONE_UPDATE_F on output enablement Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 33/49] net: sctp: fix array overrun read on sctp_timer_tbl Greg Kroah-Hartman
2017-12-08  4:34   ` Ben Hutchings
2017-12-09 17:02     ` Greg Kroah-Hartman
2017-12-09 17:02       ` Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 34/49] tipc: fix cleanup at module unload Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 35/49] dmaengine: pl330: fix double lock Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 36/49] tcp: correct memory barrier usage in tcp_check_space() Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 37/49] mm: avoid returning VM_FAULT_RETRY from ->page_mkwrite handlers Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 38/49] xen-netfront: Improve error handling during initialization Greg Kroah-Hartman
2017-12-08  5:10   ` Ben Hutchings
2017-12-09 17:04     ` Greg Kroah-Hartman
2017-12-09 17:04       ` Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 39/49] net: fec: fix multicast filtering hardware setup Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 40/49] Revert "ocfs2: should wait dio before inode lock in ocfs2_setattr()" Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 41/49] usb: hub: Cycle HUB power when initialization fails Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 42/49] usb: xhci: fix panic in xhci_free_virt_devices_depth_first Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 43/49] usb: Add USB 3.1 Precision time measurement capability descriptor support Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 44/49] usb: ch9: Add size macro for SSP dev cap descriptor Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 45/49] USB: core: Add type-specific length check of BOS descriptors Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 46/49] USB: Increase usbfs transfer limit Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 47/49] USB: devio: Prevent integer overflow in proc_do_submiturb() Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 48/49] USB: usbfs: Filter flags passed in from user space Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 49/49] usb: host: fix incorrect updating of offset Greg Kroah-Hartman
2017-12-07 15:23 ` [PATCH 4.4 00/49] 4.4.105-stable review Nathan Chancellor
2017-12-07 20:06   ` Greg Kroah-Hartman
2017-12-07 20:54 ` Guenter Roeck
2017-12-08  0:06 ` Shuah Khan
2017-12-08  5:36 ` Naresh Kamboju
     [not found] ` <5a299569.3bb0df0a.2b900.5bf0@mx.google.com>
     [not found]   ` <7hr2s5kn0w.fsf@baylibre.com>
2017-12-09 17:05     ` Greg Kroah-Hartman
  -- strict thread matches above, loose matches on Subject: below --
2017-12-07 13:07 [4.4,13/49] usb: dwc2: Fix UDC state tracking Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 13/49] " Greg Kroah-Hartman
2017-12-07 13:07 [4.4,14/49] usb: dwc2: Error out of dwc2_hsotg_ep_disable() if were in host mode Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 14/49] " Greg Kroah-Hartman
2017-12-07 13:07 [4.4,18/49] EDAC, sb_edac: Fix missing break in switch Greg Kroah-Hartman
2017-12-07 13:07 ` [PATCH 4.4 18/49] " Greg Kroah-Hartman
2017-12-08  3:37 [4.4,13/49] usb: dwc2: Fix UDC state tracking Ben Hutchings
2017-12-08  3:37 ` [PATCH 4.4 13/49] " Ben Hutchings
2017-12-09 17:12 [4.4,13/49] " Greg Kroah-Hartman
2017-12-09 17:12 ` [PATCH 4.4 13/49] " Greg Kroah-Hartman
2017-12-09 17:12 ` Greg Kroah-Hartman
2017-12-12  0:27 [4.4,13/49] " Levin, Alexander
2017-12-12  0:27 ` [PATCH 4.4 13/49] " alexander.levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171207124707.826264155@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@verizon.com \
    --cc=bcodding@redhat.com \
    --cc=jlayton@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=trond.myklebust@primarydata.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.