2008-09-22 10:57:59

by Takashi Sato

[permalink] [raw]
Subject: [PATCH 7/10] jfs: Fix error handling in write_super_lockfs/unlockfs

I've changed write_super_lockfs/unlockfs so that they always return
0 (success) to keep a current behavior.

Signed-off-by: Takashi Sato <[email protected]>
Signed-off-by: Masayuki Hamaguchi <[email protected]>
---
super.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff -uprN -X linux-2.6.27-rc7-lockfs-gfs2/Documentation/dontdiff linux-2.6.27-rc7-lockfs-gfs2/fs/jfs/super.c linux-2.6.
27-rc7-lockfs-jfs/fs/jfs/super.c
--- linux-2.6.27-rc7-lockfs-gfs2/fs/jfs/super.c 2008-09-22 07:29:55.000000000 +0900
+++ linux-2.6.27-rc7-lockfs-jfs/fs/jfs/super.c 2008-09-22 11:02:34.000000000 +0900
@@ -543,7 +543,7 @@ out_kfree:
return ret;
}

-static void jfs_write_super_lockfs(struct super_block *sb)
+static int jfs_write_super_lockfs(struct super_block *sb)
{
struct jfs_sb_info *sbi = JFS_SBI(sb);
struct jfs_log *log = sbi->log;
@@ -553,9 +553,10 @@ static void jfs_write_super_lockfs(struc
lmLogShutdown(log);
updateSuper(sb, FM_CLEAN);
}
+ return 0;
}

-static void jfs_unlockfs(struct super_block *sb)
+static int jfs_unlockfs(struct super_block *sb)
{
struct jfs_sb_info *sbi = JFS_SBI(sb);
struct jfs_log *log = sbi->log;
@@ -568,6 +569,7 @@ static void jfs_unlockfs(struct super_bl
else
txResume(sb);
}
+ return 0;
}

static int jfs_get_sb(struct file_system_type *fs_type,


2008-09-24 14:05:29

by Dave Kleikamp

[permalink] [raw]
Subject: Re: [PATCH 7/10] jfs: Fix error handling in write_super_lockfs/unlockfs

On Mon, 2008-09-22 at 19:57 +0900, Takashi Sato wrote:
> I've changed write_super_lockfs/unlockfs so that they always return
> 0 (success) to keep a current behavior.

Address Christoph's concerns, and you can add my ack. The bits that
change the return code need to be a single patch.

> Signed-off-by: Takashi Sato <[email protected]>
> Signed-off-by: Masayuki Hamaguchi <[email protected]>
Acked-by: Dave Kleikamp <[email protected]>


> -static void jfs_write_super_lockfs(struct super_block *sb)
> +static int jfs_write_super_lockfs(struct super_block *sb)
> {
> struct jfs_sb_info *sbi = JFS_SBI(sb);
> struct jfs_log *log = sbi->log;
> @@ -553,9 +553,10 @@ static void jfs_write_super_lockfs(struc
> lmLogShutdown(log);
> updateSuper(sb, FM_CLEAN);
> }
> + return 0;

Alright. Nothing should fail here, and if it does, we're screwed
anyway.

> -static void jfs_unlockfs(struct super_block *sb)
> +static int jfs_unlockfs(struct super_block *sb)
> {
> struct jfs_sb_info *sbi = JFS_SBI(sb);
> struct jfs_log *log = sbi->log;
> @@ -568,6 +569,7 @@ static void jfs_unlockfs(struct super_bl
> else
> txResume(sb);
> }
> + return 0;

jfs_unlockfs() could return non-zero in the case where lmLogInit()
fails. I'm not sure what good that does though. There isn't much the
caller can do when an unfreeze fails.

Shaggy
--
David Kleikamp
IBM Linux Technology Center