diff --git a/fs/jfs/jfs_lock.h b/fs/jfs/jfs_lock.h index feb37dd9debf..ab798de87202 100644 --- a/fs/jfs/jfs_lock.h +++ b/fs/jfs/jfs_lock.h @@ -29,7 +29,7 @@ do { \ if (cond) \ break; \ unlock_cmd; \ - io_schedule(); \ + io_schedule_timeout(HZ); \ lock_cmd; \ } \ __set_current_state(TASK_RUNNING); \ diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c index b343c5ea1159..ee6e9ed5e3af 100644 --- a/fs/jfs/jfs_logmgr.c +++ b/fs/jfs/jfs_logmgr.c @@ -1860,6 +1860,7 @@ static void lbmLogShutdown(struct jfs_log * log) lbuf = log->lbuf_free; while (lbuf) { struct lbuf *next = lbuf->l_freelist; + lbmIOWait(lbuf, 0); __free_page(lbuf->l_page); kfree(lbuf); lbuf = next;