patch-2.1.93 linux/fs/sysv/inode.c
Next file: linux/fs/ufs/ufs_super.c
Previous file: linux/fs/super.c
Back to the patch index
Back to the overall index
- Lines: 35
- Date:
Sat Apr 4 09:45:18 1998
- Orig file:
v2.1.92/linux/fs/sysv/inode.c
- Orig date:
Mon Feb 23 18:12:11 1998
diff -u --recursive --new-file v2.1.92/linux/fs/sysv/inode.c linux/fs/sysv/inode.c
@@ -492,12 +492,14 @@
sb->s_op = &sysv_sops;
root_inode = iget(sb,SYSV_ROOT_INO);
sb->s_root = d_alloc_root(root_inode, NULL);
- unlock_super(sb);
if (!sb->s_root) {
printk("SysV FS: get root inode failed\n");
sysv_put_super(sb);
+ sb->sb_dev = 0;
+ unlock_super(sb);
return NULL;
}
+ unlock_super(sb);
sb->s_dirt = 1;
/* brelse(bh); resp. brelse(bh1); brelse(bh2);
occurs when the disk is unmounted. */
@@ -530,15 +532,14 @@
void sysv_put_super(struct super_block *sb)
{
- /* we can assume sysv_write_super() has already been called */
- lock_super(sb);
+ /* we can assume sysv_write_super() has already been called, and
+ and that the superblock is locked */
brelse(sb->sv_bh1);
if (sb->sv_bh1 != sb->sv_bh2) brelse(sb->sv_bh2);
/* switch back to default block size */
if (sb->s_blocksize != BLOCK_SIZE)
set_blocksize(sb->s_dev,BLOCK_SIZE);
- sb->s_dev = 0;
- unlock_super(sb);
+
MOD_DEC_USE_COUNT;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov