From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Torvalds Subject: Re: [PATCH] cleanup block based fiemap Date: Fri, 23 Apr 2010 08:27:02 -0700 (PDT) Message-ID: References: <20100423144420.GC2351@localhost.localdomain> <20100423151857.GD2351@localhost.localdomain> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: akpm@linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, randy.dunlap@oracle.com To: Josef Bacik Return-path: In-Reply-To: <20100423151857.GD2351@localhost.localdomain> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Fri, 23 Apr 2010, Josef Bacik wrote: > > __generic_block_fiemap is called by generic_block_fiemap which takes the > i_mutex. The only reason we have __generic_block_fiemap is because gfs2 needs > to do its own locking magic before we go calling get_block. The idea is that > the file size doesn't change while we're doing this. Ok, maybe just a comment then.. > As for reading the size several times, I can read it once and store it in a > local variable if you prefer, but theres no way to know if len is smaller than > the size or not, which is why I'm constantly doing i_size_read(). If thats what > you would prefer I can do that, just let me know. .. or a comment _and_ a "read size once into a variable". Not a big deal, it just wasn't entirely clear to me and I hadn't checked the callchain. > > Issue #2: "blk_to_logical(inode, 0)"? WTF? Since when has shifting zero > > ever resulted in anything interesting or relevant? There's at least two of > > those things. > > > > Umm, yeah I'm sorry? I have no idea why I did that. I think its because I was > getting the logical offset of the first block + size, which is just stupid > because the logical offset is 0, so all I can say is I'm sorry that me a year > ago was alot dumber than me now :). Thanks, Ok, fix that, and I think the patch will be a clear improvement. Linus