Merge tag 'sh-for-4.8' of git://git.libc.org/linux-sh
[linux-2.6-block.git] / fs / nilfs2 / the_nilfs.h
index 79369fd6b13bcb8ba73198887f004fbf8536b663..b305c6f033e7c46ea11cbf7481135375b38f2d9b 100644 (file)
@@ -43,6 +43,7 @@ enum {
  * struct the_nilfs - struct to supervise multiple nilfs mount points
  * @ns_flags: flags
  * @ns_flushed_device: flag indicating if all volatile data was flushed
+ * @ns_sb: back pointer to super block instance
  * @ns_bdev: block device
  * @ns_sem: semaphore for shared states
  * @ns_snapshot_mount_mutex: mutex to protect snapshot mounts
@@ -102,6 +103,7 @@ struct the_nilfs {
        unsigned long           ns_flags;
        int                     ns_flushed_device;
 
+       struct super_block     *ns_sb;
        struct block_device    *ns_bdev;
        struct rw_semaphore     ns_sem;
        struct mutex            ns_snapshot_mount_mutex;
@@ -120,11 +122,8 @@ struct the_nilfs {
        unsigned int            ns_sb_update_freq;
 
        /*
-        * Following fields are dedicated to a writable FS-instance.
-        * Except for the period seeking checkpoint, code outside the segment
-        * constructor must lock a segment semaphore while accessing these
-        * fields.
-        * The writable FS-instance is sole during a lifetime of the_nilfs.
+        * The following fields are updated by a writable FS-instance.
+        * These fields are protected by ns_segctor_sem outside load_nilfs().
         */
        u64                     ns_seg_seq;
        __u64                   ns_segnum;
@@ -281,7 +280,7 @@ static inline int nilfs_sb_will_flip(struct the_nilfs *nilfs)
 }
 
 void nilfs_set_last_segment(struct the_nilfs *, sector_t, u64, __u64);
-struct the_nilfs *alloc_nilfs(struct block_device *bdev);
+struct the_nilfs *alloc_nilfs(struct super_block *sb);
 void destroy_nilfs(struct the_nilfs *nilfs);
 int init_nilfs(struct the_nilfs *nilfs, struct super_block *sb, char *data);
 int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb);