fs/udf/inode.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
Avoid assignment inside an if condition when choosing the block
allocation goal in inode_getblk(), and make the priority order
explicit. No functional change.
Signed-off-by: Adarsh Das <adarshdas950@gmail.com>
---
fs/udf/inode.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 7fae8002344a..4a4cb42319af 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -734,7 +734,7 @@ static int inode_getblk(struct inode *inode, struct udf_map_rq *map)
sector_t offset = 0;
int8_t etype, tmpetype;
struct udf_inode_info *iinfo = UDF_I(inode);
- udf_pblk_t goal = 0, pgoal = iinfo->i_location.logicalBlockNum;
+ udf_pblk_t goal = 0, pgoal = 0;
int lastblock = 0;
bool isBeyondEOF = false;
int ret = 0;
@@ -893,11 +893,10 @@ static int inode_getblk(struct inode *inode, struct udf_map_rq *map)
else { /* otherwise, allocate a new block */
if (iinfo->i_next_alloc_block == map->lblk)
goal = iinfo->i_next_alloc_goal;
-
- if (!goal) {
- if (!(goal = pgoal)) /* XXX: what was intended here? */
- goal = iinfo->i_location.logicalBlockNum + 1;
- }
+ else if (pgoal)
+ goal = pgoal;
+ else
+ goal = iinfo->i_location.logicalBlockNum + 1;
newblocknum = udf_new_block(inode->i_sb, inode,
iinfo->i_location.partitionReferenceNum,
--
2.53.0
On Fri 06-02-26 18:26:38, Adarsh Das wrote:
> Avoid assignment inside an if condition when choosing the block
> allocation goal in inode_getblk(), and make the priority order
> explicit. No functional change.
>
> Signed-off-by: Adarsh Das <adarshdas950@gmail.com>
> ---
> fs/udf/inode.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
Thanks for the cleanup. I agree it is desirable. But:
> @@ -893,11 +893,10 @@ static int inode_getblk(struct inode *inode, struct udf_map_rq *map)
> else { /* otherwise, allocate a new block */
> if (iinfo->i_next_alloc_block == map->lblk)
> goal = iinfo->i_next_alloc_goal;
> -
> - if (!goal) {
> - if (!(goal = pgoal)) /* XXX: what was intended here? */
> - goal = iinfo->i_location.logicalBlockNum + 1;
> - }
> + else if (pgoal)
I don't think the 'else' here is correct. When map->lblk is zero, it can
happen that i_next_alloc_goal will be 0 as well. Previously we've used
iinfo->i_location.logicalBlockNum + 1 for such cases but now we would leave
0 in 'goal'. Anyway, I'll fix this up on commit so this is just
informational.
Honza
> + goal = pgoal;
> + else
> + goal = iinfo->i_location.logicalBlockNum + 1;
>
> newblocknum = udf_new_block(inode->i_sb, inode,
> iinfo->i_location.partitionReferenceNum,
> --
> 2.53.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
© 2016 - 2026 Red Hat, Inc.