xfs: constify the name argument to various directory functions
authorDarrick J. Wong <djwong@kernel.org>
Wed, 9 Mar 2022 18:16:09 +0000 (10:16 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Mon, 14 Mar 2022 17:23:17 +0000 (10:23 -0700)
Various directory functions do not modify their @name parameter,
so mark it const to make that clear.  This will enable us to mark
the global xfs_name_dotdot variable as const to prevent mischief.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/libxfs/xfs_dir2.c
fs/xfs/libxfs/xfs_dir2.h
fs/xfs/libxfs/xfs_dir2_priv.h
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode.h
fs/xfs/xfs_trace.h

index 50546ea..6b531a6 100644 (file)
@@ -54,10 +54,10 @@ xfs_mode_to_ftype(
  */
 xfs_dahash_t
 xfs_ascii_ci_hashname(
-       struct xfs_name *name)
+       const struct xfs_name   *name)
 {
-       xfs_dahash_t    hash;
-       int             i;
+       xfs_dahash_t            hash;
+       int                     i;
 
        for (i = 0, hash = 0; i < name->len; i++)
                hash = tolower(name->name[i]) ^ rol32(hash, 7);
@@ -243,7 +243,7 @@ int
 xfs_dir_createname(
        struct xfs_trans        *tp,
        struct xfs_inode        *dp,
-       struct xfs_name         *name,
+       const struct xfs_name   *name,
        xfs_ino_t               inum,           /* new entry inode number */
        xfs_extlen_t            total)          /* bmap's total block count */
 {
@@ -337,16 +337,16 @@ xfs_dir_cilookup_result(
 
 int
 xfs_dir_lookup(
-       xfs_trans_t     *tp,
-       xfs_inode_t     *dp,
-       struct xfs_name *name,
-       xfs_ino_t       *inum,          /* out: inode number */
-       struct xfs_name *ci_name)       /* out: actual name if CI match */
+       struct xfs_trans        *tp,
+       struct xfs_inode        *dp,
+       const struct xfs_name   *name,
+       xfs_ino_t               *inum,    /* out: inode number */
+       struct xfs_name         *ci_name) /* out: actual name if CI match */
 {
-       struct xfs_da_args *args;
-       int             rval;
-       int             v;              /* type-checking value */
-       int             lock_mode;
+       struct xfs_da_args      *args;
+       int                     rval;
+       int                     v;        /* type-checking value */
+       int                     lock_mode;
 
        ASSERT(S_ISDIR(VFS_I(dp)->i_mode));
        XFS_STATS_INC(dp->i_mount, xs_dir_lookup);
@@ -475,7 +475,7 @@ int
 xfs_dir_replace(
        struct xfs_trans        *tp,
        struct xfs_inode        *dp,
-       struct xfs_name         *name,          /* name of entry to replace */
+       const struct xfs_name   *name,          /* name of entry to replace */
        xfs_ino_t               inum,           /* new inode number */
        xfs_extlen_t            total)          /* bmap's total block count */
 {
@@ -728,7 +728,7 @@ xfs_dir2_namecheck(
 xfs_dahash_t
 xfs_dir2_hashname(
        struct xfs_mount        *mp,
-       struct xfs_name         *name)
+       const struct xfs_name   *name)
 {
        if (unlikely(xfs_has_asciici(mp)))
                return xfs_ascii_ci_hashname(name);
index d03e609..55e0557 100644 (file)
@@ -39,16 +39,16 @@ extern int xfs_dir_isempty(struct xfs_inode *dp);
 extern int xfs_dir_init(struct xfs_trans *tp, struct xfs_inode *dp,
                                struct xfs_inode *pdp);
 extern int xfs_dir_createname(struct xfs_trans *tp, struct xfs_inode *dp,
-                               struct xfs_name *name, xfs_ino_t inum,
+                               const struct xfs_name *name, xfs_ino_t inum,
                                xfs_extlen_t tot);
 extern int xfs_dir_lookup(struct xfs_trans *tp, struct xfs_inode *dp,
-                               struct xfs_name *name, xfs_ino_t *inum,
+                               const struct xfs_name *name, xfs_ino_t *inum,
                                struct xfs_name *ci_name);
 extern int xfs_dir_removename(struct xfs_trans *tp, struct xfs_inode *dp,
                                struct xfs_name *name, xfs_ino_t ino,
                                xfs_extlen_t tot);
 extern int xfs_dir_replace(struct xfs_trans *tp, struct xfs_inode *dp,
-                               struct xfs_name *name, xfs_ino_t inum,
+                               const struct xfs_name *name, xfs_ino_t inum,
                                xfs_extlen_t tot);
 extern int xfs_dir_canenter(struct xfs_trans *tp, struct xfs_inode *dp,
                                struct xfs_name *name);
index 711709a..7404a9f 100644 (file)
@@ -40,7 +40,7 @@ struct xfs_dir3_icfree_hdr {
 };
 
 /* xfs_dir2.c */
-xfs_dahash_t xfs_ascii_ci_hashname(struct xfs_name *name);
+xfs_dahash_t xfs_ascii_ci_hashname(const struct xfs_name *name);
 enum xfs_dacmp xfs_ascii_ci_compname(struct xfs_da_args *args,
                const unsigned char *name, int len);
 extern int xfs_dir2_grow_inode(struct xfs_da_args *args, int space,
@@ -201,7 +201,8 @@ xfs_dir2_data_entsize(
        return round_up(len, XFS_DIR2_DATA_ALIGN);
 }
 
-xfs_dahash_t xfs_dir2_hashname(struct xfs_mount *mp, struct xfs_name *name);
+xfs_dahash_t xfs_dir2_hashname(struct xfs_mount *mp,
+               const struct xfs_name *name);
 enum xfs_dacmp xfs_dir2_compname(struct xfs_da_args *args,
                const unsigned char *name, int len);
 
index 35a2489..67ece99 100644 (file)
@@ -658,9 +658,9 @@ xfs_ip2xflags(
  */
 int
 xfs_lookup(
-       xfs_inode_t             *dp,
-       struct xfs_name         *name,
-       xfs_inode_t             **ipp,
+       struct xfs_inode        *dp,
+       const struct xfs_name   *name,
+       struct xfs_inode        **ipp,
        struct xfs_name         *ci_name)
 {
        xfs_ino_t               inum;
index b7e8f14..740ab13 100644 (file)
@@ -402,7 +402,7 @@ enum layout_break_reason {
 
 int            xfs_release(struct xfs_inode *ip);
 void           xfs_inactive(struct xfs_inode *ip);
-int            xfs_lookup(struct xfs_inode *dp, struct xfs_name *name,
+int            xfs_lookup(struct xfs_inode *dp, const struct xfs_name *name,
                           struct xfs_inode **ipp, struct xfs_name *ci_name);
 int            xfs_create(struct user_namespace *mnt_userns,
                           struct xfs_inode *dp, struct xfs_name *name,
index 4a8076e..239c8b8 100644 (file)
@@ -933,7 +933,7 @@ DEFINE_IREF_EVENT(xfs_inode_unpin);
 DEFINE_IREF_EVENT(xfs_inode_unpin_nowait);
 
 DECLARE_EVENT_CLASS(xfs_namespace_class,
-       TP_PROTO(struct xfs_inode *dp, struct xfs_name *name),
+       TP_PROTO(struct xfs_inode *dp, const struct xfs_name *name),
        TP_ARGS(dp, name),
        TP_STRUCT__entry(
                __field(dev_t, dev)
@@ -956,7 +956,7 @@ DECLARE_EVENT_CLASS(xfs_namespace_class,
 
 #define DEFINE_NAMESPACE_EVENT(name) \
 DEFINE_EVENT(xfs_namespace_class, name, \
-       TP_PROTO(struct xfs_inode *dp, struct xfs_name *name), \
+       TP_PROTO(struct xfs_inode *dp, const struct xfs_name *name), \
        TP_ARGS(dp, name))
 DEFINE_NAMESPACE_EVENT(xfs_remove);
 DEFINE_NAMESPACE_EVENT(xfs_link);