[RESEND] pnfs/blocklayout: fix last_write_offset incorrectly set to page boundary
diff mbox

Message ID ffe9a2cc97ead5b73b985aa4c16219351cac29d5.1476215430.git.bcodding@redhat.com
State New
Headers show

Commit Message

Benjamin Coddington Oct. 11, 2016, 7:53 p.m. UTC
I'm resending this as the original was buried in a thread and I want to make
sure it gets picked up.  This fixes a bug that went in v4.8.

8<--------------------------------------------------------------------------

Commit 41963c10c47a35185e68cb9049f7a3493c94d2d7 sets the block layout's
last written byte to the offset of the end of the extent rather than the
end of the write which incorrectly updates the inode's size for
partial-page writes.

Fixes: 41963c10c47a ("pnfs/blocklayout: update last_write_offset atomically with extents")
Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
---
 fs/nfs/blocklayout/blocklayout.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Christoph Hellwig Oct. 11, 2016, 8:17 p.m. UTC | #1
On Tue, Oct 11, 2016 at 03:53:21PM -0400, Benjamin Coddington wrote:
> I'm resending this as the original was buried in a thread and I want to make
> sure it gets picked up.  This fixes a bug that went in v4.8.

Didn't I already give you my review for this?  Otherwise:

Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Christoph Hellwig <hch@lst.de>

should also get a Cc to stable.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Anna Schumaker Oct. 13, 2016, 8:46 p.m. UTC | #2
Hi Ben,

Thanks for the patch!  It didn't make it into my initial pull request for 4.9, but I am planning on sending it for an rc along with any bakeathon changes from next week.

I hope that's okay!
Anna

On 10/11/2016 04:17 PM, Christoph Hellwig wrote:
> On Tue, Oct 11, 2016 at 03:53:21PM -0400, Benjamin Coddington wrote:
>> I'm resending this as the original was buried in a thread and I want to make
>> sure it gets picked up.  This fixes a bug that went in v4.8.
> 
> Didn't I already give you my review for this?  Otherwise:
> 
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> Tested-by: Christoph Hellwig <hch@lst.de>
> 
> should also get a Cc to stable.
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Christoph Hellwig Oct. 21, 2016, 12:18 p.m. UTC | #3
On Thu, Oct 13, 2016 at 04:46:19PM -0400, Anna Schumaker wrote:
> Hi Ben,
> 
> Thanks for the patch!  It didn't make it into my initial pull request for 4.9, but I am planning on sending it for an rc along with any bakeathon changes from next week.

Any progress on that?  I'd really like to get the fix in before at least
-rc2.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Anna Schumaker Oct. 21, 2016, 2:58 p.m. UTC | #4
Hi Christoph,

On 10/21/2016 08:18 AM, Christoph Hellwig wrote:
> On Thu, Oct 13, 2016 at 04:46:19PM -0400, Anna Schumaker wrote:
>> Hi Ben,
>>
>> Thanks for the patch!  It didn't make it into my initial pull request for 4.9, but I am planning on sending it for an rc along with any bakeathon changes from next week.
> 
> Any progress on that?  I'd really like to get the fix in before at least
> -rc2.
> 

I have the patch is my tree ready to go!  I've been holding back since the NFS Bakeathon is this week, and I was waiting to see if any bugfixes were posted that I could send off at the same time.

Anna
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
index 217847679f0e..2905479f214a 100644
--- a/fs/nfs/blocklayout/blocklayout.c
+++ b/fs/nfs/blocklayout/blocklayout.c
@@ -344,9 +344,10 @@  static void bl_write_cleanup(struct work_struct *work)
 		u64 start = hdr->args.offset & (loff_t)PAGE_MASK;
 		u64 end = (hdr->args.offset + hdr->args.count +
 			PAGE_SIZE - 1) & (loff_t)PAGE_MASK;
+		u64 lwb = hdr->args.offset + hdr->args.count;
 
 		ext_tree_mark_written(bl, start >> SECTOR_SHIFT,
-					(end - start) >> SECTOR_SHIFT, end);
+					(end - start) >> SECTOR_SHIFT, lwb);
 	}
 
 	pnfs_ld_write_done(hdr);