Re: [PATCH 2/7] ovl: use OVL_E() and OVL_E_FLAGS() accessors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 2023-04-08 at 19:42 +0300, Amir Goldstein wrote:
> Instead of open coded instances, because we are about to split
> the two apart.
> 
> Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx>

Reviewed-by: Alexander Larsson <alexl@xxxxxxxxxx>

> ---
>  fs/overlayfs/export.c    |  2 +-
>  fs/overlayfs/namei.c     |  8 ++++----
>  fs/overlayfs/ovl_entry.h |  5 +++++
>  fs/overlayfs/super.c     |  2 +-
>  fs/overlayfs/util.c      | 20 ++++++++++----------
>  5 files changed, 21 insertions(+), 16 deletions(-)
> 
> diff --git a/fs/overlayfs/export.c b/fs/overlayfs/export.c
> index 5c36fb3a7bab..2cfdfcca5659 100644
> --- a/fs/overlayfs/export.c
> +++ b/fs/overlayfs/export.c
> @@ -341,7 +341,7 @@ static struct dentry *ovl_obtain_alias(struct
> super_block *sb,
>  /* Get the upper or lower dentry in stack whose on layer @idx */
>  static struct dentry *ovl_dentry_real_at(struct dentry *dentry, int
> idx)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>         int i;
>  
>         if (!idx)
> diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c
> index 100a492d2b2a..e66352f19755 100644
> --- a/fs/overlayfs/namei.c
> +++ b/fs/overlayfs/namei.c
> @@ -790,7 +790,7 @@ struct dentry *ovl_lookup_index(struct ovl_fs
> *ofs, struct dentry *upper,
>   */
>  int ovl_path_next(int idx, struct dentry *dentry, struct path *path)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>  
>         BUG_ON(idx < 0);
>         if (idx == 0) {
> @@ -833,8 +833,8 @@ struct dentry *ovl_lookup(struct inode *dir,
> struct dentry *dentry,
>         struct ovl_entry *oe;
>         const struct cred *old_cred;
>         struct ovl_fs *ofs = dentry->d_sb->s_fs_info;
> -       struct ovl_entry *poe = dentry->d_parent->d_fsdata;
> -       struct ovl_entry *roe = dentry->d_sb->s_root->d_fsdata;
> +       struct ovl_entry *poe = OVL_E(dentry->d_parent);
> +       struct ovl_entry *roe = OVL_E(dentry->d_sb->s_root);
>         struct ovl_path *stack = NULL, *origin_path = NULL;
>         struct dentry *upperdir, *upperdentry = NULL;
>         struct dentry *origin = NULL;
> @@ -1157,7 +1157,7 @@ struct dentry *ovl_lookup(struct inode *dir,
> struct dentry *dentry,
>  
>  bool ovl_lower_positive(struct dentry *dentry)
>  {
> -       struct ovl_entry *poe = dentry->d_parent->d_fsdata;
> +       struct ovl_entry *poe = OVL_E(dentry->d_parent);
>         const struct qstr *name = &dentry->d_name;
>         const struct cred *old_cred;
>         unsigned int i;
> diff --git a/fs/overlayfs/ovl_entry.h b/fs/overlayfs/ovl_entry.h
> index fd11fe6d6d45..4c7312126b3b 100644
> --- a/fs/overlayfs/ovl_entry.h
> +++ b/fs/overlayfs/ovl_entry.h
> @@ -124,6 +124,11 @@ static inline struct ovl_entry *OVL_E(struct
> dentry *dentry)
>         return (struct ovl_entry *) dentry->d_fsdata;
>  }
>  
> +static inline unsigned long *OVL_E_FLAGS(struct dentry *dentry)
> +{
> +       return &OVL_E(dentry)->flags;
> +}
> +
>  struct ovl_inode {
>         union {
>                 struct ovl_dir_cache *cache;    /* directory */
> diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
> index 49b6956468f9..108824b359e6 100644
> --- a/fs/overlayfs/super.c
> +++ b/fs/overlayfs/super.c
> @@ -138,7 +138,7 @@ static int ovl_revalidate_real(struct dentry *d,
> unsigned int flags, bool weak)
>  static int ovl_dentry_revalidate_common(struct dentry *dentry,
>                                         unsigned int flags, bool
> weak)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>         struct inode *inode = d_inode_rcu(dentry);
>         struct dentry *upper;
>         unsigned int i;
> diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c
> index 6a0652bd51f2..01e6b4ec3074 100644
> --- a/fs/overlayfs/util.c
> +++ b/fs/overlayfs/util.c
> @@ -143,7 +143,7 @@ bool ovl_dentry_weird(struct dentry *dentry)
>  
>  enum ovl_path_type ovl_path_type(struct dentry *dentry)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>         enum ovl_path_type type = 0;
>  
>         if (ovl_dentry_upper(dentry)) {
> @@ -176,7 +176,7 @@ void ovl_path_upper(struct dentry *dentry, struct
> path *path)
>  
>  void ovl_path_lower(struct dentry *dentry, struct path *path)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>  
>         if (oe->numlower) {
>                 path->mnt = oe->lowerstack[0].layer->mnt;
> @@ -188,7 +188,7 @@ void ovl_path_lower(struct dentry *dentry, struct
> path *path)
>  
>  void ovl_path_lowerdata(struct dentry *dentry, struct path *path)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>  
>         if (oe->numlower) {
>                 path->mnt = oe->lowerstack[oe->numlower - 1].layer-
> >mnt;
> @@ -231,14 +231,14 @@ struct dentry *ovl_dentry_upper(struct dentry
> *dentry)
>  
>  struct dentry *ovl_dentry_lower(struct dentry *dentry)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>  
>         return oe->numlower ? oe->lowerstack[0].dentry : NULL;
>  }
>  
>  const struct ovl_layer *ovl_layer_lower(struct dentry *dentry)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>  
>         return oe->numlower ? oe->lowerstack[0].layer : NULL;
>  }
> @@ -251,7 +251,7 @@ const struct ovl_layer *ovl_layer_lower(struct
> dentry *dentry)
>   */
>  struct dentry *ovl_dentry_lowerdata(struct dentry *dentry)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>  
>         return oe->numlower ? oe->lowerstack[oe->numlower - 1].dentry
> : NULL;
>  }
> @@ -329,17 +329,17 @@ void ovl_set_dir_cache(struct inode *inode,
> struct ovl_dir_cache *cache)
>  
>  void ovl_dentry_set_flag(unsigned long flag, struct dentry *dentry)
>  {
> -       set_bit(flag, &OVL_E(dentry)->flags);
> +       set_bit(flag, OVL_E_FLAGS(dentry));
>  }
>  
>  void ovl_dentry_clear_flag(unsigned long flag, struct dentry
> *dentry)
>  {
> -       clear_bit(flag, &OVL_E(dentry)->flags);
> +       clear_bit(flag, OVL_E_FLAGS(dentry));
>  }
>  
>  bool ovl_dentry_test_flag(unsigned long flag, struct dentry *dentry)
>  {
> -       return test_bit(flag, &OVL_E(dentry)->flags);
> +       return test_bit(flag, OVL_E_FLAGS(dentry));
>  }
>  
>  bool ovl_dentry_is_opaque(struct dentry *dentry)
> @@ -1015,7 +1015,7 @@ int ovl_check_metacopy_xattr(struct ovl_fs
> *ofs, const struct path *path)
>  
>  bool ovl_is_metacopy_dentry(struct dentry *dentry)
>  {
> -       struct ovl_entry *oe = dentry->d_fsdata;
> +       struct ovl_entry *oe = OVL_E(dentry);
>  
>         if (!d_is_reg(dentry))
>                 return false;

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
=-=-=
 Alexander Larsson                                            Red Hat,
Inc 
       alexl@xxxxxxxxxx            alexander.larsson@xxxxxxxxx 
He's a one-legged devious stage actor for the 21st century. She's a 
mistrustful blonde research scientist prone to fits of savage, 
blood-crazed rage. They fight crime! 





[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux