From 7b9bf760fa7692d33d4562d22af0baf497be94fd Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Thu, 20 Sep 2012 21:19:43 -0400 Subject: [PATCH] --- yaml --- r: 333135 b: refs/heads/master c: 115ce575cb10918514d053ef15f597a4e6ff60e9 h: refs/heads/master i: 333133: 2269aa98c2ac58b19e9290732751e65381869c67 333131: 7cc849d4b198874c7a8eb194f3e0abd0f1102468 333127: 5636c672b1a2f2c9781689eb54d05afc3725ea47 333119: c41828c1cc55d81f41a6b7d75ab97ebc1911ffe3 v: v3 --- [refs] | 2 +- trunk/fs/nfs/pnfs.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index b6a919093ecb..9ddb76af7bf6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3e6212149304eaf9289d5bc56e003068660f3476 +refs/heads/master: 115ce575cb10918514d053ef15f597a4e6ff60e9 diff --git a/trunk/fs/nfs/pnfs.c b/trunk/fs/nfs/pnfs.c index 6834fa1be571..9ee3bd705b94 100644 --- a/trunk/fs/nfs/pnfs.c +++ b/trunk/fs/nfs/pnfs.c @@ -265,10 +265,18 @@ static void pnfs_layout_io_set_failed(struct pnfs_layout_hdr *lo, u32 iomode) { struct inode *inode = lo->plh_inode; + struct pnfs_layout_range range = { + .iomode = iomode, + .offset = 0, + .length = NFS4_MAX_UINT64, + }; + LIST_HEAD(head); spin_lock(&inode->i_lock); pnfs_layout_set_fail_bit(lo, pnfs_iomode_to_fail_bit(iomode)); + pnfs_mark_matching_lsegs_invalid(lo, &head, &range); spin_unlock(&inode->i_lock); + pnfs_free_lseg_list(&head); dprintk("%s Setting layout IOMODE_%s fail bit\n", __func__, iomode == IOMODE_RW ? "RW" : "READ"); }