From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Piggin Subject: Re: [patch] fs: remove prepare_write/commit_write Date: Thu, 25 Sep 2008 01:54:29 +0200 Message-ID: <20080924235429.GA17508@wotan.suse.de> References: <20080924234116.GC30307@wotan.suse.de> <20080924234819.GA16344@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Badari Pulavarty , linux-fsdevel@vger.kernel.org, akpm@linux-foundation.org To: Christoph Hellwig Return-path: Received: from mx1.suse.de ([195.135.220.2]:49640 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751097AbYIXXyb (ORCPT ); Wed, 24 Sep 2008 19:54:31 -0400 Content-Disposition: inline In-Reply-To: <20080924234819.GA16344@infradead.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Wed, Sep 24, 2008 at 07:48:19PM -0400, Christoph Hellwig wrote: > On Thu, Sep 25, 2008 at 01:41:16AM +0200, Nick Piggin wrote: > > --- linux-2.6.orig/mm/filemap.c > > +++ linux-2.6/mm/filemap.c > > @@ -2016,48 +2016,8 @@ int pagecache_write_begin(struct file *f > > { > > const struct address_space_operations *aops = mapping->a_ops; > > > > + return aops->write_begin(file, mapping, pos, len, flags, > > pagep, fsdata); > > } > > EXPORT_SYMBOL(pagecache_write_begin); > > Please kill pagecache_write_begin/pagecache_write_end, too. Well.... we *could* have it handle writes for filesystems that don't implement write_begin/write_end, couldn't we? > > static ssize_t generic_perform_write(struct file *file, > > struct iov_iter *i, loff_t pos) > > { > > @@ -2481,10 +2253,7 @@ generic_file_buffered_write(struct kiocb > > struct iov_iter i; > > > > iov_iter_init(&i, iov, nr_segs, count, written); > > - if (a_ops->write_begin) > > - status = generic_perform_write(file, &i, pos); > > - else > > - status = generic_perform_write_2copy(file, &i, pos); > > + status = generic_perform_write(file, &i, pos); > > > > if (likely(status >= 0)) { > > written += status; > > Can we merge generic_perform_write back into > generic_file_buffered_write? generic_file_buffered_write is left as a > rather useless wrapper after this. Yeah that makes sense. > > - ->prepare_write(), ->commit_write(), ->sync_page() and ->readpage() > > + ->write_begin(), ->write_end(), ->sync_page() and ->readpage() > > may be called from the request handler (/dev/loop). > > This comment can go away, all file I/O done by the loop device now is > from a kthread. Feel like sending a patch to kill that now? Thanks, Nick