Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy...
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 8 May 2007 18:32:30 +0000 (11:32 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 8 May 2007 18:32:30 +0000 (11:32 -0700)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:
  JFS: Fix race waking up jfsIO kernel thread
  JFS: use __set_current_state()
  Copy i_flags to jfs inode flags on write
  JFS: document uid, gid, and umask mount options in jfs.txt

1  2 
fs/jfs/jfs_logmgr.c
fs/jfs/jfs_txnmgr.c

diff --combined fs/jfs/jfs_logmgr.c
@@@ -62,6 -62,7 +62,6 @@@
  #include <linux/fs.h>
  #include <linux/blkdev.h>
  #include <linux/interrupt.h>
 -#include <linux/smp_lock.h>
  #include <linux/completion.h>
  #include <linux/kthread.h>
  #include <linux/buffer_head.h>                /* for sync_blockdev() */
@@@ -1589,7 -1590,7 +1589,7 @@@ void jfs_flush_journal(struct jfs_log *
                set_current_state(TASK_UNINTERRUPTIBLE);
                LOGGC_UNLOCK(log);
                schedule();
-               current->state = TASK_RUNNING;
+               __set_current_state(TASK_RUNNING);
                LOGGC_LOCK(log);
                remove_wait_queue(&target->gcwait, &__wait);
        }
@@@ -2353,14 -2354,15 +2353,15 @@@ int jfsIOWait(void *arg
                        lbmStartIO(bp);
                        spin_lock_irq(&log_redrive_lock);
                }
-               spin_unlock_irq(&log_redrive_lock);
  
                if (freezing(current)) {
+                       spin_unlock_irq(&log_redrive_lock);
                        refrigerator();
                } else {
                        set_current_state(TASK_INTERRUPTIBLE);
+                       spin_unlock_irq(&log_redrive_lock);
                        schedule();
-                       current->state = TASK_RUNNING;
+                       __set_current_state(TASK_RUNNING);
                }
        } while (!kthread_should_stop());
  
diff --combined fs/jfs/jfs_txnmgr.c
@@@ -44,6 -44,7 +44,6 @@@
  
  #include <linux/fs.h>
  #include <linux/vmalloc.h>
 -#include <linux/smp_lock.h>
  #include <linux/completion.h>
  #include <linux/freezer.h>
  #include <linux/module.h>
@@@ -135,7 -136,7 +135,7 @@@ static inline void TXN_SLEEP_DROP_LOCK(
        set_current_state(TASK_UNINTERRUPTIBLE);
        TXN_UNLOCK();
        io_schedule();
-       current->state = TASK_RUNNING;
+       __set_current_state(TASK_RUNNING);
        remove_wait_queue(event, &wait);
  }
  
@@@ -2797,7 -2798,7 +2797,7 @@@ int jfs_lazycommit(void *arg
                        set_current_state(TASK_INTERRUPTIBLE);
                        LAZY_UNLOCK(flags);
                        schedule();
-                       current->state = TASK_RUNNING;
+                       __set_current_state(TASK_RUNNING);
                        remove_wait_queue(&jfs_commit_thread_wait, &wq);
                }
        } while (!kthread_should_stop());
@@@ -2989,7 -2990,7 +2989,7 @@@ int jfs_sync(void *arg
                        set_current_state(TASK_INTERRUPTIBLE);
                        TXN_UNLOCK();
                        schedule();
-                       current->state = TASK_RUNNING;
+                       __set_current_state(TASK_RUNNING);
                }
        } while (!kthread_should_stop());