Skip to contentSkip to conversation

Patch "pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Jan 6, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid

to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
pnfs-clear-nfs_layout_return_requested-when-invalidating-the-layout-stateid.patch
and it can be found in the queue-4.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From ae5a459d5f65c3e83f3e14068dde5fb9c9d81807 Mon Sep 17 00:00:00 2001

From: Trond Myklebust <[email protected]>
Date: Mon, 14 Nov 2016 14:34:18 -0500
Subject: pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid

From: Trond Myklebust <[email protected]>

commit ae5a459d5f65c3e83f3e14068dde5fb9c9d81807 upstream.

We must ensure that we don't schedule a layoutreturn if the layout stateid has been marked as invalid.

Fixes 2a59a0411671e ("pNFS: Fix pnfs_set_layout_stateid() to clear...")
---
 fs/nfs/pnfs.c |   17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)
fs/nfs/pnfs.c +9 -8
@@ -252,6 +252,14 @@ pnfs_put_layout_hdr(struct pnfs_layout_h
 	}
 }
 
+static void
+pnfs_clear_layoutreturn_info(struct pnfs_layout_hdr *lo)
+{
+	lo->plh_return_iomode = 0;
+	lo->plh_return_seq = 0;
+	clear_bit(NFS_LAYOUT_RETURN_REQUESTED, &lo->plh_flags);
+}
+
 /*
  * Mark a pnfs_layout_hdr and all associated layout segments as invalid
  *
@@ -270,6 +278,7 @@ pnfs_mark_layout_stateid_invalid(struct
 	};
 
 	set_bit(NFS_LAYOUT_INVALID_STID, &lo->plh_flags);
+	pnfs_clear_layoutreturn_info(lo);
 	return pnfs_mark_matching_lsegs_invalid(lo, lseg_list, &range, 0);
 }
 
@@ -771,14 +780,6 @@ pnfs_destroy_all_layouts(struct nfs_clie
 	pnfs_destroy_layouts_byclid(clp, false);
 }
 
-static void
-pnfs_clear_layoutreturn_info(struct pnfs_layout_hdr *lo)
-{
-	lo->plh_return_iomode = 0;
-	lo->plh_return_seq = 0;
-	clear_bit(NFS_LAYOUT_RETURN_REQUESTED, &lo->plh_flags);
-}
-
 /* update lo->plh_stateid with new if is more recent */
 void
 pnfs_set_layout_stateid(struct pnfs_layout_hdr *lo, const nfs4_stateid *new,

Patches currently in stable-queue which might be from [email protected] are

queue-4.8/pnfs-fix-a-deadlock-between-read-resends-and-layoutreturn.patch queue-4.8/pnfs-don-t-clear-the-layout-stateid-if-a-layout-return-is-outstanding.patch queue-4.8/sunrpc-fix-refcounting-problems-with-auth_gss-messages.patch queue-4.8/pnfs-on-error-do-not-send-layoutget-until-the-layoutreturn-has-completed.patch queue-4.8/pnfs-clear-nfs_layout_return_requested-when-invalidating-the-layout-stateid.patch