From patchwork Tue Jun 7 17:29:22 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Rees X-Patchwork-Id: 858222 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p57HShVC019126 for ; Tue, 7 Jun 2011 17:29:26 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756728Ab1FGR3Z (ORCPT ); Tue, 7 Jun 2011 13:29:25 -0400 Received: from int-mailstore01.merit.edu ([207.75.116.232]:53700 "EHLO int-mailstore01.merit.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755722Ab1FGR3Z (ORCPT ); Tue, 7 Jun 2011 13:29:25 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by int-mailstore01.merit.edu (Postfix) with ESMTP id BCF863083A6D; Tue, 7 Jun 2011 13:29:24 -0400 (EDT) X-Virus-Scanned: amavisd-new at int-mailstore01.merit.edu Received: from int-mailstore01.merit.edu ([127.0.0.1]) by localhost (int-mailstore01.merit.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6ZNK9cl+3o+F; Tue, 7 Jun 2011 13:29:24 -0400 (EDT) Received: from merit.edu (host-17.subnet-17.med.umich.edu [141.214.17.17]) by int-mailstore01.merit.edu (Postfix) with ESMTPSA id 63EB73055B74; Tue, 7 Jun 2011 13:29:24 -0400 (EDT) Date: Tue, 7 Jun 2011 13:29:22 -0400 From: Jim Rees To: Benny Halevy Cc: linux-nfs@vger.kernel.org, peter honeyman Subject: [PATCH 30/88] pnfsblock: write_end Message-ID: <33457eaede5912d7802ba8e3c5fd843c110b69d9.1307464382.git.rees@umich.edu> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 07 Jun 2011 17:29:26 +0000 (UTC) From: Fred Isaman Implements bl_write_end, which basically just calls SetPageUptodate. Signed-off-by: Fred Isaman Signed-off-by: Benny Halevy --- 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,