nilfs2: remove unlikely directive causing mis-conversion of error code

The following error code handling in nilfs_segctor_write() function
wrongly converted negative error codes to a truth value (i.e. 1):

   err = unlikely(err) ? : res;

which originaly meant to be

   err = err ? : res;

This mis-conversion caused that write or sync functions receive the
unexpected error code.  This fixes the bug by removing the unlikely
directive.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Cc: stable@kernel.org
This commit is contained in:
Ryusuke Konishi 2009-06-18 11:42:53 +09:00
parent 8e4a718ff3
commit 0cfae3d879

View File

@ -1829,8 +1829,8 @@ static int nilfs_segctor_write(struct nilfs_sc_info *sci,
err = nilfs_segbuf_write(segbuf, &wi);
res = nilfs_segbuf_wait(segbuf, &wi);
err = unlikely(err) ? : res;
if (unlikely(err))
err = err ? : res;
if (err)
return err;
}
return 0;