cifs: add SMB3 change notification support
[linux-2.6-microblaze.git] / fs / io-wq.h
index 3f5e356..50b3378 100644 (file)
@@ -7,11 +7,11 @@ enum {
        IO_WQ_WORK_CANCEL       = 1,
        IO_WQ_WORK_HAS_MM       = 2,
        IO_WQ_WORK_HASHED       = 4,
-       IO_WQ_WORK_NEEDS_USER   = 8,
-       IO_WQ_WORK_NEEDS_FILES  = 16,
        IO_WQ_WORK_UNBOUND      = 32,
        IO_WQ_WORK_INTERNAL     = 64,
        IO_WQ_WORK_CB           = 128,
+       IO_WQ_WORK_NO_CANCEL    = 256,
+       IO_WQ_WORK_CONCURRENT   = 512,
 
        IO_WQ_HASH_SHIFT        = 24,   /* upper 8 bits are used for hash key */
 };
@@ -72,6 +72,8 @@ struct io_wq_work {
        };
        void (*func)(struct io_wq_work **);
        struct files_struct *files;
+       struct mm_struct *mm;
+       const struct cred *creds;
        unsigned flags;
 };
 
@@ -81,21 +83,22 @@ struct io_wq_work {
                (work)->func = _func;                   \
                (work)->flags = 0;                      \
                (work)->files = NULL;                   \
+               (work)->mm = NULL;                      \
+               (work)->creds = NULL;                   \
        } while (0)                                     \
 
 typedef void (get_work_fn)(struct io_wq_work *);
 typedef void (put_work_fn)(struct io_wq_work *);
 
 struct io_wq_data {
-       struct mm_struct *mm;
        struct user_struct *user;
-       const struct cred *creds;
 
        get_work_fn *get_work;
        put_work_fn *put_work;
 };
 
 struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data);
+bool io_wq_get(struct io_wq *wq, struct io_wq_data *data);
 void io_wq_destroy(struct io_wq *wq);
 
 void io_wq_enqueue(struct io_wq *wq, struct io_wq_work *work);