| From 0cfae3d8795f388f9de78adb0171520d19da77e9 Mon Sep 17 00:00:00 2001 |
| From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> |
| Date: Thu, 18 Jun 2009 11:42:53 +0900 |
| Subject: nilfs2: remove unlikely directive causing mis-conversion of error code |
| |
| From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> |
| |
| 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 | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/fs/nilfs2/segment.c |
| +++ b/fs/nilfs2/segment.c |
| @@ -1846,8 +1846,8 @@ static int nilfs_segctor_write(struct ni |
| 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; |