On Sun,  3 May 2015 12:05:14 +0200, Andreas Rohner wrote:
> This patch adds three new attributes to the nilfs object, which contain
> a copy of the feature flags from the super block. This can be used, to
> efficiently test whether file system feature flags are set or not.
> 
> Signed-off-by: Andreas Rohner <andreas.roh...@gmx.net>
> ---
>  fs/nilfs2/the_nilfs.c | 4 ++++
>  fs/nilfs2/the_nilfs.h | 8 ++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
> index 69bd801..606fdfc 100644
> --- a/fs/nilfs2/the_nilfs.c
> +++ b/fs/nilfs2/the_nilfs.c
> @@ -630,6 +630,10 @@ int init_nilfs(struct the_nilfs *nilfs, struct 
> super_block *sb, char *data)
>       get_random_bytes(&nilfs->ns_next_generation,
>                        sizeof(nilfs->ns_next_generation));
>  
> +     nilfs->ns_feature_compat = le64_to_cpu(sbp->s_feature_compat);
> +     nilfs->ns_feature_compat_ro = le64_to_cpu(sbp->s_feature_compat_ro);
> +     nilfs->ns_feature_incompat = le64_to_cpu(sbp->s_feature_incompat);

Consider moving these initialization to just before calling
nilfs_check_feature_compatibility().

It uses compat flags, and I'd like to unfold the function using these
internal variables sometime.

> +
>       err = nilfs_store_disk_layout(nilfs, sbp);
>       if (err)
>               goto failed_sbh;
> diff --git a/fs/nilfs2/the_nilfs.h b/fs/nilfs2/the_nilfs.h
> index 23778d3..12cd91d 100644
> --- a/fs/nilfs2/the_nilfs.h
> +++ b/fs/nilfs2/the_nilfs.h
> @@ -101,6 +101,9 @@ enum {
>   * @ns_dev_kobj: /sys/fs/<nilfs>/<device>
>   * @ns_dev_kobj_unregister: completion state
>   * @ns_dev_subgroups: <device> subgroups pointer
> + * @ns_feature_compat: Compatible feature set
> + * @ns_feature_compat_ro: Read-only compatible feature set
> + * @ns_feature_incompat: Incompatible feature set
>   */
>  struct the_nilfs {
>       unsigned long           ns_flags;
> @@ -201,6 +204,11 @@ struct the_nilfs {
>       struct kobject ns_dev_kobj;
>       struct completion ns_dev_kobj_unregister;
>       struct nilfs_sysfs_dev_subgroups *ns_dev_subgroups;
> +
> +     /* Features */
> +     __u64                   ns_feature_compat;
> +     __u64                   ns_feature_compat_ro;
> +     __u64                   ns_feature_incompat;
>  };
>  
>  #define THE_NILFS_FNS(bit, name)                                     \
> -- 
> 2.3.7
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to