From: Jan Kara Date: Wed, 18 Jan 2023 11:05:58 +0000 (+0100) Subject: udf: Move incrementing of goal block directly into inode_getblk() X-Git-Tag: io_uring-6.3-2023-03-03~63^2~39 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=de80dae03c436b43017dd5e479486f1f73fa6769;p=linux-2.6-block.git udf: Move incrementing of goal block directly into inode_getblk() inode_getblk() sets goal block for the next allocation to the currently allocated block. This is obviously one less than what the goal block should be which we fixup in udf_get_block(). Just set the right goal block directly in inode_getblk(). Signed-off-by: Jan Kara --- diff --git a/fs/udf/inode.c b/fs/udf/inode.c index bcb56674773a..6f190d0d590c 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -339,11 +339,6 @@ static int udf_get_block(struct inode *inode, sector_t block, iinfo = UDF_I(inode); down_write(&iinfo->i_data_sem); - if (block == iinfo->i_next_alloc_block + 1) { - iinfo->i_next_alloc_block++; - iinfo->i_next_alloc_goal++; - } - /* * Block beyond EOF and prealloc extents? Just discard preallocation * as it is not useful and complicates things. @@ -810,8 +805,8 @@ static sector_t inode_getblk(struct inode *inode, sector_t block, goto out_free; } *new = 1; - iinfo->i_next_alloc_block = block; - iinfo->i_next_alloc_goal = newblocknum; + iinfo->i_next_alloc_block = block + 1; + iinfo->i_next_alloc_goal = newblocknum + 1; inode->i_ctime = current_time(inode); if (IS_SYNC(inode))