Merge branch 'linux-linaro-lsk-v3.10' into linux-linaro-lsk-v3.10-android
[firefly-linux-kernel-4.4.55.git] / fs / jffs2 / wbuf.c
index a6597d60d76de751224243ddfe6d990cd6de7e87..09ed55190ee2c077524e38a11b4fe41c00f51ac9 100644 (file)
@@ -1162,10 +1162,6 @@ static void delayed_wbuf_sync(struct work_struct *work)
        struct jffs2_sb_info *c = work_to_sb(work);
        struct super_block *sb = OFNI_BS_2SFFJ(c);
 
-       spin_lock(&c->wbuf_dwork_lock);
-       c->wbuf_queued = 0;
-       spin_unlock(&c->wbuf_dwork_lock);
-
        if (!(sb->s_flags & MS_RDONLY)) {
                jffs2_dbg(1, "%s()\n", __func__);
                jffs2_flush_wbuf_gc(c, 0);
@@ -1180,14 +1176,9 @@ void jffs2_dirty_trigger(struct jffs2_sb_info *c)
        if (sb->s_flags & MS_RDONLY)
                return;
 
-       spin_lock(&c->wbuf_dwork_lock);
-       if (!c->wbuf_queued) {
+       delay = msecs_to_jiffies(dirty_writeback_interval * 10);
+       if (queue_delayed_work(system_long_wq, &c->wbuf_dwork, delay))
                jffs2_dbg(1, "%s()\n", __func__);
-               delay = msecs_to_jiffies(dirty_writeback_interval * 10);
-               queue_delayed_work(system_long_wq, &c->wbuf_dwork, delay);
-               c->wbuf_queued = 1;
-       }
-       spin_unlock(&c->wbuf_dwork_lock);
 }
 
 int jffs2_nand_flash_setup(struct jffs2_sb_info *c)
@@ -1211,7 +1202,6 @@ int jffs2_nand_flash_setup(struct jffs2_sb_info *c)
 
        /* Initialise write buffer */
        init_rwsem(&c->wbuf_sem);
-       spin_lock_init(&c->wbuf_dwork_lock);
        INIT_DELAYED_WORK(&c->wbuf_dwork, delayed_wbuf_sync);
        c->wbuf_pagesize = c->mtd->writesize;
        c->wbuf_ofs = 0xFFFFFFFF;
@@ -1251,7 +1241,6 @@ int jffs2_dataflash_setup(struct jffs2_sb_info *c) {
 
        /* Initialize write buffer */
        init_rwsem(&c->wbuf_sem);
-       spin_lock_init(&c->wbuf_dwork_lock);
        INIT_DELAYED_WORK(&c->wbuf_dwork, delayed_wbuf_sync);
        c->wbuf_pagesize =  c->mtd->erasesize;
 
@@ -1311,7 +1300,6 @@ int jffs2_nor_wbuf_flash_setup(struct jffs2_sb_info *c) {
 
        /* Initialize write buffer */
        init_rwsem(&c->wbuf_sem);
-       spin_lock_init(&c->wbuf_dwork_lock);
        INIT_DELAYED_WORK(&c->wbuf_dwork, delayed_wbuf_sync);
 
        c->wbuf_pagesize = c->mtd->writesize;
@@ -1346,7 +1334,6 @@ int jffs2_ubivol_setup(struct jffs2_sb_info *c) {
                return 0;
 
        init_rwsem(&c->wbuf_sem);
-       spin_lock_init(&c->wbuf_dwork_lock);
        INIT_DELAYED_WORK(&c->wbuf_dwork, delayed_wbuf_sync);
 
        c->wbuf_pagesize =  c->mtd->writesize;