X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p73KnJ9M179518 for ; Wed, 3 Aug 2011 15:49:19 -0500 X-ASG-Debug-ID: 1312404557-31d8004a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E82914A6830 for ; Wed, 3 Aug 2011 13:49:17 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 2BNpz5GrWbzy1hun for ; Wed, 03 Aug 2011 13:49:17 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id E36758B2F9; Wed, 3 Aug 2011 22:49:16 +0200 (CEST) Received: by quack.suse.cz (Postfix, from userid 1000) id 15EFC202A0; Wed, 3 Aug 2011 22:49:16 +0200 (CEST) From: Jan Kara To: hch@infradead.org Cc: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Jan Kara X-ASG-Orig-Subj: [PATCH 1/2] vfs: Create filemap_flush_range() Subject: [PATCH 1/2] vfs: Create filemap_flush_range() Date: Wed, 3 Aug 2011 22:49:04 +0200 Message-Id: <1312404545-15400-2-git-send-email-jack@suse.cz> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1312404545-15400-1-git-send-email-jack@suse.cz> References: <1312404545-15400-1-git-send-email-jack@suse.cz> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1312404558 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70816 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Create a version of filemap_flush() function which can take a range. Signed-off-by: Jan Kara --- include/linux/fs.h | 2 ++ mm/filemap.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 786b3b1..091cf90 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2177,6 +2177,8 @@ extern int invalidate_inode_pages2_range(struct address_space *mapping, extern int write_inode_now(struct inode *, int); extern int filemap_fdatawrite(struct address_space *); extern int filemap_flush(struct address_space *); +extern int filemap_flush_range(struct address_space *mapping, loff_t start, + loff_t end); extern int filemap_fdatawait(struct address_space *); extern int filemap_fdatawait_range(struct address_space *, loff_t lstart, loff_t lend); diff --git a/mm/filemap.c b/mm/filemap.c index 867d402..8fd2347 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -253,6 +253,22 @@ int filemap_flush(struct address_space *mapping) EXPORT_SYMBOL(filemap_flush); /** + * filemap_flush_range - mostly a non-blocking flush of a mapping range + * @mapping: target address_space + * @start: offset in bytes where the range starts + * @end: offset in bytes where the range ends (inclusive) + * + * This is a mostly non-blocking flush. Not suitable for data-integrity + * purposes - I/O may not be started against all dirty pages. + */ +int filemap_flush_range(struct address_space *mapping, loff_t start, + loff_t end) +{ + return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_NONE); +} +EXPORT_SYMBOL(filemap_flush_range); + +/** * filemap_fdatawait_range - wait for writeback to complete * @mapping: address space structure to wait for * @start_byte: offset in bytes where the range starts -- 1.7.1