xfs: ensure committed is initialized in xfs_trans_roll
PATCH 1/1 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 <[email protected]>
Signed-off-by Eric Sandeen <[email protected]>
---
fs/xfs/xfs_trans.c +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); }
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Looks fine,
Reviewed-by Christoph Hellwig <[email protected]>
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs