André Almeida <andrealmeid@xxxxxxxxxx> writes: > Filesystems that need to deal with the super block encoding need to use > a if IS_ENABLED(CONFIG_UNICODE) around it because this struct member is > not declared otherwise. In order to move this if/endif guards outside of > the filesytem code and make it simpler, create a new function that > returns the s_encoding member of struct super_block if Unicode is > enabled, and return NULL otherwise. > > Suggested-by: Amir Goldstein <amir73il@xxxxxxxxx> > Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx> > Signed-off-by: André Almeida <andrealmeid@xxxxxxxxxx> Reviewed-by: Gabriel Krisman Bertazi <gabriel@xxxxxxxxxx> > --- > include/linux/fs.h | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/include/linux/fs.h b/include/linux/fs.h > index e1d4fef5c181d291a7c685e5897b2c018df439ae..a4d353a871b094b562a87ddcffe8336a26c5a3e2 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -3733,15 +3733,20 @@ static inline bool generic_ci_validate_strict_name(struct inode *dir, struct qst > } > #endif > > -static inline bool sb_has_encoding(const struct super_block *sb) > +static inline struct unicode_map *sb_encoding(const struct super_block *sb) > { > #if IS_ENABLED(CONFIG_UNICODE) > - return !!sb->s_encoding; > + return sb->s_encoding; > #else > - return false; > + return NULL; > #endif > } > > +static inline bool sb_has_encoding(const struct super_block *sb) > +{ > + return !!sb_encoding(sb); > +} > + > int may_setattr(struct mnt_idmap *idmap, struct inode *inode, > unsigned int ia_valid); > int setattr_prepare(struct mnt_idmap *, struct dentry *, struct iattr *); -- Gabriel Krisman Bertazi