From: Fred Isaman <iisaman@xxxxxxxxxxxxxx> Implements bl_write_end, which basically just calls SetPageUptodate. Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxxxxxx> Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> --- fs/nfs/blocklayout/blocklayout.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c index b3ad99d..f4851c1 100644 --- a/fs/nfs/blocklayout/blocklayout.c +++ b/fs/nfs/blocklayout/blocklayout.c @@ -818,6 +818,23 @@ bl_write_begin(struct pnfs_layout_segment *lseg, struct page *page, loff_t pos, return ret; } +/* CAREFUL - what happens if copied < count??? */ +static int +bl_write_end(struct inode *inode, struct page *page, loff_t pos, + unsigned count, unsigned copied, struct pnfs_fsdata *fsdata) +{ + dprintk("%s enter, %u@%lld, %i\n", __func__, count, pos, + fsdata ? fsdata->ok_to_use_pnfs : -1); + print_page(page); + if (fsdata) { + if (fsdata->ok_to_use_pnfs) { + dprintk("%s using pnfs\n", __func__); + SetPageUptodate(page); + } + } + return 0; +} + static ssize_t bl_get_stripesize(struct pnfs_layout_type *lo) { @@ -862,6 +879,7 @@ static struct layoutdriver_io_operations blocklayout_io_operations = { .read_pagelist = bl_read_pagelist, .write_pagelist = bl_write_pagelist, .write_begin = bl_write_begin, + .write_end = bl_write_end, .alloc_layout = bl_alloc_layout, .free_layout = bl_free_layout, .alloc_lseg = bl_alloc_lseg, -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html