Merge tag 'backlight-for-linus-3.19' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / fs / gfs2 / incore.h
index 39e7e9959b7462f99a7d04dff4759445f581d9df..7a2dbbc0d6348e39872491b3e6a070c5729f93f5 100644 (file)
@@ -97,6 +97,7 @@ struct gfs2_rgrpd {
 #define GFS2_RDF_CHECK         0x10000000 /* check for unlinked inodes */
 #define GFS2_RDF_UPTODATE      0x20000000 /* rg is up to date */
 #define GFS2_RDF_ERROR         0x40000000 /* error in rg */
+#define GFS2_RDF_PREFERRED     0x80000000 /* This rgrp is preferred */
 #define GFS2_RDF_MASK          0xf0000000 /* mask for internal flags */
        spinlock_t rd_rsspin;           /* protects reservation related vars */
        struct rb_root rd_rstree;       /* multi-block reservation tree */
@@ -587,6 +588,12 @@ enum {
        SDF_SKIP_DLM_UNLOCK     = 8,
 };
 
+enum gfs2_freeze_state {
+       SFS_UNFROZEN            = 0,
+       SFS_STARTING_FREEZE     = 1,
+       SFS_FROZEN              = 2,
+};
+
 #define GFS2_FSNAME_LEN                256
 
 struct gfs2_inum_host {
@@ -684,6 +691,7 @@ struct gfs2_sbd {
        struct gfs2_holder sd_live_gh;
        struct gfs2_glock *sd_rename_gl;
        struct gfs2_glock *sd_freeze_gl;
+       struct work_struct sd_freeze_work;
        wait_queue_head_t sd_glock_wait;
        atomic_t sd_glock_disposal;
        struct completion sd_locking_init;
@@ -788,6 +796,9 @@ struct gfs2_sbd {
        wait_queue_head_t sd_log_flush_wait;
        int sd_log_error;
 
+       atomic_t sd_reserving_log;
+       wait_queue_head_t sd_reserving_log_wait;
+
        unsigned int sd_log_flush_head;
        u64 sd_log_flush_wrapped;
 
@@ -797,12 +808,8 @@ struct gfs2_sbd {
 
        /* For quiescing the filesystem */
        struct gfs2_holder sd_freeze_gh;
-       struct gfs2_holder sd_freeze_root_gh;
-       struct gfs2_holder sd_thaw_gh;
-       atomic_t sd_log_freeze;
-       atomic_t sd_frozen_root;
-       wait_queue_head_t sd_frozen_root_wait;
-       wait_queue_head_t sd_log_frozen_wait;
+       atomic_t sd_freeze_state;
+       struct mutex sd_freeze_mutex;
 
        char sd_fsname[GFS2_FSNAME_LEN];
        char sd_table_name[GFS2_FSNAME_LEN];