In function jfs_freeze() the log is shut down through lmLogShutdown() call. When the "nointegrity" mount option is enabled, the log is actually not initialized. As a result the freeze operation in that case brings to a kernel OOPS.
The solution is to check if the "nointegrity" option is enabled and if it is not then shut the log down. May be this is not the best solution, but at least it fixes the OOPS. Found by Linux File System Verification project (linuxtesting.org) Signed-off-by: Vahram Martirosyan <[email protected]> --- fs/jfs/super.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fs/jfs/super.c b/fs/jfs/super.c index a3d424d..9788970 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c @@ -615,10 +615,12 @@ static int jfs_freeze(struct super_block *sb) if (!(sb->s_flags & MS_RDONLY)) { txQuiesce(sb); - rc = lmLogShutdown(log); - if (rc != 0) { - jfs_err("lmLogShutdown failed with return code %d", rc); - return rc; + if (!log->no_integrity) { + rc = lmLogShutdown(log); + if (rc != 0) { + jfs_err("lmLogShutdown failed with return code %d", rc); + return rc; + } } rc = updateSuper(sb, FM_CLEAN); if (rc != 0) { -- 1.8.2.3 ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ Jfs-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jfs-discussion
