search for: ocfs2_test_osb_flag

Displaying 3 results from an estimated 3 matches for "ocfs2_test_osb_flag".

2010 Aug 20
0
[PATCH] ocfs2: Don't delete orphaned files if we are in the process of umount.
...ons(-) diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c index b4957c7..827ccb8 100644 --- a/fs/ocfs2/dcache.c +++ b/fs/ocfs2/dcache.c @@ -356,7 +356,7 @@ void ocfs2_drop_dl_inodes(struct work_struct *work) */ spin_lock(&dentry_list_lock); if (osb->dentry_lock_list && - !ocfs2_test_osb_flag(osb, OCFS2_OSB_DROP_DENTRY_LOCK_IMMED)) + !ocfs2_test_osb_flag(osb, OCFS2_OSB_UMOUNT_START)) queue_work(ocfs2_wq, &osb->dentry_lock_work); spin_unlock(&dentry_list_lock); } @@ -398,7 +398,7 @@ static void ocfs2_drop_dentry_lock(struct ocfs2_super *osb, * possibly lead to ino...
2010 Jan 29
0
[PATCH 3/3] ocfs2:freeze-thaw: make it work -v2
...uper_block *sb; + int ret, do_unlock = 0; + struct ocfs2_super *osb = container_of(work, struct ocfs2_super, + osb_freeze_work); + + mlog(0, "flags=0x%lx, frozen=%d\n", osb->osb_flags, osb->sb->s_frozen); + + /* If umount is in progress, wait it to complete. */ + ret = ocfs2_test_osb_flag(osb, OCFS2_OSB_UMOUNT_INPROG); + if (ret) { + mlog(0, "Unmount in progress, make the freeze request pending\n"); + /* Leave FREEZE_INPROG there so not queue the worker again */ + return; + } + + sb = freeze_bdev(osb->sb->s_bdev); + if (IS_ERR(sb)) { + /* ocfs2_freeze_fs() should...
2009 Jul 20
1
[PATCH] ocfs2: flush dentry lock drop when sync ocfs2 volume.
In commit ea455f8ab68338ba69f5d3362b342c115bea8e13, we move the dentry lock put process into ocfs2_wq. This is OK for most case, but as for umount, it lead to at least 2 bugs. See http://oss.oracle.com/bugzilla/show_bug.cgi?id=1133 and http://oss.oracle.com/bugzilla/show_bug.cgi?id=1135. And it happens easily if we have opened a lot of inodes. For 1135, the reason is that during umount will call