patch-2.4.23 linux-2.4.23/fs/jfs/jfs_metapage.c
Next file: linux-2.4.23/fs/jfs/jfs_mount.c
Previous file: linux-2.4.23/fs/jfs/jfs_logmgr.h
Back to the patch index
Back to the overall index
- Lines: 55
- Date:
2003-11-28 10:26:21.000000000 -0800
- Orig file:
linux-2.4.22/fs/jfs/jfs_metapage.c
- Orig date:
2003-06-13 07:51:37.000000000 -0700
diff -urN linux-2.4.22/fs/jfs/jfs_metapage.c linux-2.4.23/fs/jfs/jfs_metapage.c
@@ -1,6 +1,6 @@
/*
- * Copyright (c) International Business Machines Corp., 2000-2002
- * Portions Copyright (c) Christoph Hellwig, 2001-2002
+ * Copyright (C) International Business Machines Corp., 2000-2003
+ * Portions Copyright (C) Christoph Hellwig, 2001-2002
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
#include <linux/fs.h>
#include <linux/init.h>
#include "jfs_incore.h"
+#include "jfs_superblock.h"
#include "jfs_filsys.h"
#include "jfs_metapage.h"
#include "jfs_txnmgr.h"
@@ -291,14 +292,23 @@
if (mp) {
page_found:
if (test_bit(META_discard, &mp->flag)) {
- assert(new); /* It's okay to reuse a discarded
- * if we expect it to be empty
- */
+ if (!new) {
+ spin_unlock(&meta_lock);
+ jfs_error(inode->i_sb,
+ "__get_metapage: using a "
+ "discarded metapage");
+ return NULL;
+ }
clear_bit(META_discard, &mp->flag);
}
mp->count++;
jfs_info("__get_metapage: found 0x%p, in hash", mp);
- assert(mp->logical_size == size);
+ if (mp->logical_size != size) {
+ spin_unlock(&meta_lock);
+ jfs_error(inode->i_sb,
+ "__get_metapage: mp->logical_size != size");
+ return NULL;
+ }
lock_metapage(mp);
spin_unlock(&meta_lock);
} else {
@@ -548,9 +558,6 @@
if (mp) {
set_bit(META_discard, &mp->flag);
spin_unlock(&meta_lock);
- lock_page(mp->page);
- block_flushpage(mp->page, 0);
- UnlockPage(mp->page);
} else {
spin_unlock(&meta_lock);
page = find_lock_page(mapping, lblock>>l2BlocksPerPage);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)