You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
xfs: ensure committed is initialized in xfs_trans_roll
__xfs_trans_roll() can return without setting the
*committed argument; this was a problem for xfs_bmap_finish():
int committed;/* xact committed or not */
...
error = __xfs_trans_roll(tp, ip, &committed);
if (error) {
...
if (committed) {
and we tested an uninitialized "committed" variable on the
error path. No caller is preserving "committed" state across
calls to __xfs_trans_roll(), so just initialize committed inside
the function to avoid future errors like this.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
committed by
Dave Chinner
parent
d34999c97a
commit
cc07eed833
+3
-1
@@ -1028,6 +1028,8 @@ __xfs_trans_roll(
|
||||
struct xfs_trans_res tres;
|
||||
int error;
|
||||
|
||||
*committed = 0;
|
||||
|
||||
/*
|
||||
* Ensure that the inode is always logged.
|
||||
*/
|
||||
@@ -1082,6 +1084,6 @@ xfs_trans_roll(
|
||||
struct xfs_trans **tpp,
|
||||
struct xfs_inode *dp)
|
||||
{
|
||||
int committed = 0;
|
||||
int committed;
|
||||
return __xfs_trans_roll(tpp, dp, &committed);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user