vserver 1.9.5.x5
[linux-2.6.git] / fs / jfs / jfs_logmgr.c
index 83dc99d..dfa771c 100644 (file)
@@ -78,7 +78,7 @@
  * lbuf's ready to be redriven.  Protected by log_redrive_lock (jfsIO thread)
  */
 static struct lbuf *log_redrive_list;
-static spinlock_t log_redrive_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(log_redrive_lock);
 DECLARE_WAIT_QUEUE_HEAD(jfs_IO_thread_wait);
 
 
@@ -113,7 +113,7 @@ DECLARE_WAIT_QUEUE_HEAD(jfs_IO_thread_wait);
 /*
  *     log buffer cache synchronization
  */
-static spinlock_t jfsLCacheLock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(jfsLCacheLock);
 
 #define        LCACHE_LOCK(flags)      spin_lock_irqsave(&jfsLCacheLock, flags)
 #define        LCACHE_UNLOCK(flags)    spin_unlock_irqrestore(&jfsLCacheLock, flags)
@@ -161,9 +161,9 @@ do {                                                \
 /*
  * Global list of active external journals
  */
-LIST_HEAD(jfs_external_logs);
-struct jfs_log *dummy_log = NULL;
-DECLARE_MUTEX(jfs_log_sem);
+static LIST_HEAD(jfs_external_logs);
+static struct jfs_log *dummy_log = NULL;
+static DECLARE_MUTEX(jfs_log_sem);
 
 /*
  * external references
@@ -205,7 +205,7 @@ static int lmLogSync(struct jfs_log * log, int nosyncwait);
  *     statistics
  */
 #ifdef CONFIG_JFS_STATISTICS
-struct lmStat {
+static struct lmStat {
        uint commit;            /* # of commit */
        uint pagedone;          /* # of page written */
        uint submitted;         /* # of pages submitted */
@@ -980,11 +980,15 @@ static int lmLogSync(struct jfs_log * log, int nosyncwait)
                 * actually make it to disk
                 */
                list_for_each_entry(sbi, &log->sb_list, log_list) {
+                       if (sbi->flag & JFS_NOINTEGRITY)
+                               continue;
                        filemap_fdatawrite(sbi->ipbmap->i_mapping);
                        filemap_fdatawrite(sbi->ipimap->i_mapping);
                        filemap_fdatawrite(sbi->sb->s_bdev->bd_inode->i_mapping);
                }
                list_for_each_entry(sbi, &log->sb_list, log_list) {
+                       if (sbi->flag & JFS_NOINTEGRITY)
+                               continue;
                        filemap_fdatawait(sbi->ipbmap->i_mapping);
                        filemap_fdatawait(sbi->ipimap->i_mapping);
                        filemap_fdatawait(sbi->sb->s_bdev->bd_inode->i_mapping);
@@ -1435,6 +1439,8 @@ int lmLogInit(struct jfs_log * log)
         *      unwind on error
         */
       errout30:                /* release log page */
+       log->wqueue = NULL;
+       bp->l_wqnext = NULL;
        lbmFree(bp);
 
       errout20:                /* release log superblock */