X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fjfs%2Fjfs_logmgr.c;h=dfa771c272a23300801b9faefb982adc292395f1;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=83dc99db1e5b0002243d0cae5f6b01b3fbbc950e;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c index 83dc99db1..dfa771c27 100644 --- a/fs/jfs/jfs_logmgr.c +++ b/fs/jfs/jfs_logmgr.c @@ -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 */