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 <[email protected]>
> ---
> 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 [email protected]
> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html