patch-2.0.4 linux/fs/ufs/ufs_super.c

Next file: linux/include/asm-ppc/posix_types.h
Previous file: linux/fs/pipe.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.3/linux/fs/ufs/ufs_super.c linux/fs/ufs/ufs_super.c
@@ -129,7 +129,13 @@
 	/* XXX - redo this so we can free it later... */
 	usb = (struct ufs_superblock *)__get_free_page(GFP_KERNEL); 
 	if (usb == NULL) {
+		sb->s_dev=0;
+		unlock_super(sb);
+		brelse(bh1);
+		brelse(bh2);
 	        printk ("ufs_read_super: get_free_page() failed\n");
+		MOD_DEC_USE_COUNT;
+		return (NULL);
 	}
 
 	memcpy((char *)usb, bh1->b_data, BLOCK_SIZE);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov