]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/gfs2/ops_super.c
iget: stop FreeVXFS from using iget() and read_inode()
[linux-2.6-omap-h63xx.git] / fs / gfs2 / ops_super.c
index 603d940f1159c2c6612d4e2c4d65cc08a946d327..5e524217944a14b9862a618fb6d68f68cf8abbfe 100644 (file)
@@ -92,7 +92,6 @@ static void gfs2_put_super(struct super_block *sb)
        kthread_stop(sdp->sd_recoverd_process);
        while (sdp->sd_glockd_num--)
                kthread_stop(sdp->sd_glockd_process[sdp->sd_glockd_num]);
-       kthread_stop(sdp->sd_scand_process);
 
        if (!(sb->s_flags & MS_RDONLY)) {
                error = gfs2_make_fs_ro(sdp);
@@ -456,12 +455,15 @@ static void gfs2_delete_inode(struct inode *inode)
        }
 
        error = gfs2_dinode_dealloc(ip);
-       /*
-        * Must do this before unlock to avoid trying to write back
-        * potentially dirty data now that inode no longer exists
-        * on disk.
-        */
+       if (error)
+               goto out_unlock;
+
+       error = gfs2_trans_begin(sdp, 0, sdp->sd_jdesc->jd_blocks);
+       if (error)
+               goto out_unlock;
+       /* Needs to be done before glock release & also in a transaction */
        truncate_inode_pages(&inode->i_data, 0);
+       gfs2_trans_end(sdp);
 
 out_unlock:
        gfs2_glock_dq(&ip->i_iopen_gh);
@@ -485,7 +487,6 @@ static struct inode *gfs2_alloc_inode(struct super_block *sb)
        if (ip) {
                ip->i_flags = 0;
                ip->i_gl = NULL;
-               ip->i_last_pfault = jiffies;
        }
        return &ip->i_inode;
 }