On Thu, 2010-01-07 at 00:52 +0530, Aneesh Kumar K.V wrote: > We should update reserve space if it is delalloc buffer > and thtat is indicated by EXT4_GET_BLOCKS_DELALLOC_RESERVE flag. > So use EXT4_GET_BLOCKS_DELALLOC_RESERVE in place of > EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE > That's a nice cleanup. With the old name, it confused me a bit on your first patch where I thought even direct IO gets unnecessary reservation update. > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> > --- > fs/ext4/ext4.h | 7 ++----- > fs/ext4/extents.c | 4 ++-- > fs/ext4/inode.c | 8 ++++---- > 3 files changed, 8 insertions(+), 11 deletions(-) > > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > index b98de17..874d169 100644 > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -361,14 +361,11 @@ struct ext4_new_group_data { > so set the magic i_delalloc_reserve_flag after taking the > inode allocation semaphore for */ > #define EXT4_GET_BLOCKS_DELALLOC_RESERVE 0x0004 > - /* Call ext4_da_update_reserve_space() after successfully > - allocating the blocks */ > -#define EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE 0x0008 > /* caller is from the direct IO path, request to creation of an > unitialized extents if not allocated, split the uninitialized > extent if blocks has been preallocated already*/ > -#define EXT4_GET_BLOCKS_DIO 0x0010 > -#define EXT4_GET_BLOCKS_CONVERT 0x0020 > +#define EXT4_GET_BLOCKS_DIO 0x0008 > +#define EXT4_GET_BLOCKS_CONVERT 0x0010 > #define EXT4_GET_BLOCKS_DIO_CREATE_EXT (EXT4_GET_BLOCKS_DIO|\ > EXT4_GET_BLOCKS_CREATE_UNINIT_EXT) > /* Convert extent to initialized after direct IO complete */ > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 3b6ff72..765a482 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -3142,7 +3142,7 @@ out: > * But fallocate would have already updated quota and block > * count for this offset. So cancel these reservation > */ > - if (flags & EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE) > + if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) > ext4_da_update_reserve_space(inode, allocated, 0); > > map_out: > @@ -3388,7 +3388,7 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode, > * Update reserved blocks/metadata blocks after successful > * block allocation which had been deferred till now. > */ > - if (flags & EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE) > + if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) > ext4_da_update_reserve_space(inode, allocated, 1); > > /* > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index 3d1a1d6..fec4ea1 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -1309,7 +1309,7 @@ int ext4_get_blocks(handle_t *handle, struct inode *inode, sector_t block, > * reserve space here. > */ > if ((retval > 0) && > - (flags & EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE)) > + (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE)) > ext4_da_update_reserve_space(inode, retval, 1); > } > if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) > @@ -2224,10 +2224,10 @@ static int mpage_da_map_blocks(struct mpage_da_data *mpd) > * variables are updated after the blocks have been allocated. > */ > new.b_state = 0; > - get_blocks_flags = (EXT4_GET_BLOCKS_CREATE | > - EXT4_GET_BLOCKS_DELALLOC_RESERVE); > + get_blocks_flags = EXT4_GET_BLOCKS_CREATE ; > if (mpd->b_state & (1 << BH_Delay)) > - get_blocks_flags |= EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE; > + get_blocks_flags |= EXT4_GET_BLOCKS_DELALLOC_RESERVE; > + > blks = ext4_get_blocks(handle, mpd->inode, next, max_blocks, > &new, get_blocks_flags); > if (blks < 0) { -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html