]> git.hungrycats.org Git - linux/commitdiff
nilfs2: remove unlikely directive causing mis-conversion of error code
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Thu, 18 Jun 2009 02:42:53 +0000 (11:42 +0900)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 30 Jul 2009 21:39:47 +0000 (14:39 -0700)
commit 0cfae3d8795f388f9de78adb0171520d19da77e9 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/nilfs2/segment.c

index 22c7f65c2403461dddd1e62ebe230bf56aab2376..16b6c47755ff6f66feeda6b936fa51cdb58436c7 100644 (file)
@@ -1846,8 +1846,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;