On Wed, Sep 05, 2018 at 09:23:26AM -0500, Eric Sandeen wrote: > On 9/5/18 8:57 AM, Carlos Maiolino wrote: > > Prepare the field to use ->fiemap for FIBMAP ioctl > > > > Signed-off-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> > > --- > > fs/cachefiles/rdwr.c | 5 ++--- > > fs/ecryptfs/mmap.c | 5 ++--- > > fs/ioctl.c | 14 ++++++++------ > > 3 files changed, 12 insertions(+), 12 deletions(-) > > > > diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c > > index 40f7595aad10..186e203d64a7 100644 > > --- a/fs/cachefiles/rdwr.c > > +++ b/fs/cachefiles/rdwr.c > > @@ -435,7 +435,7 @@ int cachefiles_read_or_alloc_page(struct fscache_retrieval *op, > > block0 = page->index; > > block0 <<= shift; > > > > - block = inode->i_mapping->a_ops->bmap(inode->i_mapping, block0); > > + block = bmap(inode, block0); > > Prior to this there's an ASSERT that inode->i_mapping->a_ops->bmap > exists. Should that stay, if the goal is to move all ->bmap use out > of calling code? OTOH, what will this code do if bmap() finds that there > is no ->bmap present and returns 0? > > > + res = bmap(inode, block); > > + > > + if (res) > > + return put_user(res, p); > > + else > > + return -EINVAL; > > So now mapping a hole will return -EINVAL? I don't think that change > in behavior is ok. > Thanks for catching it, I messed the return value here. I'm going to think about your 2 points for the next review and work on a real patch for retiring ->bmap once I've got more information now. > -Eric > > > } > > > > /** > > > -- Carlos