]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/md/dm-snap-persistent.c
Merge branch 'master' into tk71
[mv-sheeva.git] / drivers / md / dm-snap-persistent.c
index cc2bdb83f9ad685c7e87211f2e84b0b3a7aed871..95891dfcbca021563a465751dacf064aee3a46df 100644 (file)
@@ -254,9 +254,9 @@ static int chunk_io(struct pstore *ps, void *area, chunk_t chunk, int rw,
         * Issue the synchronous I/O from a different thread
         * to avoid generic_make_request recursion.
         */
-       INIT_WORK_ON_STACK(&req.work, do_metadata);
+       INIT_WORK_ONSTACK(&req.work, do_metadata);
        queue_work(ps->metadata_wq, &req.work);
-       flush_workqueue(ps->metadata_wq);
+       flush_work(&req.work);
 
        return req.result;
 }
@@ -687,7 +687,7 @@ static void persistent_commit_exception(struct dm_exception_store *store,
        /*
         * Commit exceptions to disk.
         */
-       if (ps->valid && area_io(ps, WRITE_BARRIER))
+       if (ps->valid && area_io(ps, WRITE_FLUSH_FUA))
                ps->valid = 0;
 
        /*
@@ -818,7 +818,7 @@ static int persistent_ctr(struct dm_exception_store *store,
        atomic_set(&ps->pending_count, 0);
        ps->callbacks = NULL;
 
-       ps->metadata_wq = create_singlethread_workqueue("ksnaphd");
+       ps->metadata_wq = alloc_workqueue("ksnaphd", WQ_MEM_RECLAIM, 0);
        if (!ps->metadata_wq) {
                kfree(ps);
                DMERR("couldn't start header metadata update thread");