[Ocfs2-devel] About Mark's advice on bug 48
Mark Fasheh
mark.fasheh at oracle.com
Thu Mar 25 11:10:37 CST 2004
On Thu, Mar 25, 2004 at 05:26:13PM +0800, Sonic Zhang wrote:
> Hi Mark,
>
> I change a little to your patch. I remove the signal prcess code,
> because kernel thread doesn't receive signals by default.
Ours does! If you look in ocfs_daemonize, you'll see the following:
/* Block all signals except SIGKILL, SIGSTOP, SIGHUP and SIGINT */
#ifdef HAVE_NPTL
spin_lock_irq (¤t->sighand->siglock);
tmpsig = current->blocked;
siginitsetinv (¤t->blocked, SHUTDOWN_SIGS);
recalc_sigpending ();
spin_unlock_irq (¤t->sighand->siglock);
You need that signal processing bit, to dequeue pending signals from our
task. Otherwise, ocfs_wait will trigger the signal_pending condition and
return -EINTR on every call!
>This patch
> fixes the halt problem in thread ocfs_submit_thread(). But, there is
> another dead lock on osb->publish_lock in thread ocfs_volume_thread()
> and routine ocfs_journal_set_unmounted(). I am tracking this problem now.
I'd like more info on this.
--Mark
--
Mark Fasheh
Software Developer, Oracle Corp
mark.fasheh at oracle.com
More information about the Ocfs2-devel
mailing list