Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a721dbb authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

xfs: scrub symbolic links



Create the infrastructure to scrub symbolic link data.

Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
parent eec0482e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -156,5 +156,6 @@ xfs-y += $(addprefix scrub/, \
				   refcount.o \
				   rmap.o \
				   scrub.o \
				   symlink.o \
				   )
endif
+2 −1
Original line number Diff line number Diff line
@@ -500,9 +500,10 @@ struct xfs_scrub_metadata {
#define XFS_SCRUB_TYPE_BMBTC	14	/* CoW fork block mapping */
#define XFS_SCRUB_TYPE_DIR	15	/* directory */
#define XFS_SCRUB_TYPE_XATTR	16	/* extended attribute */
#define XFS_SCRUB_TYPE_SYMLINK	17	/* symbolic link */

/* Number of scrub subcommands. */
#define XFS_SCRUB_TYPE_NR	17
#define XFS_SCRUB_TYPE_NR	18

/* i: Repair this metadata. */
#define XFS_SCRUB_IFLAG_REPAIR		(1 << 0)
+2 −0
Original line number Diff line number Diff line
@@ -97,6 +97,8 @@ int xfs_scrub_setup_directory(struct xfs_scrub_context *sc,
			      struct xfs_inode *ip);
int xfs_scrub_setup_xattr(struct xfs_scrub_context *sc,
			  struct xfs_inode *ip);
int xfs_scrub_setup_symlink(struct xfs_scrub_context *sc,
			    struct xfs_inode *ip);

void xfs_scrub_ag_free(struct xfs_scrub_context *sc, struct xfs_scrub_ag *sa);
int xfs_scrub_ag_init(struct xfs_scrub_context *sc, xfs_agnumber_t agno,
+4 −0
Original line number Diff line number Diff line
@@ -239,6 +239,10 @@ static const struct xfs_scrub_meta_ops meta_scrub_ops[] = {
		.setup	= xfs_scrub_setup_xattr,
		.scrub	= xfs_scrub_xattr,
	},
	{ /* symbolic link */
		.setup	= xfs_scrub_setup_symlink,
		.scrub	= xfs_scrub_symlink,
	},
};

/* This isn't a stable feature, warn once per day. */
+1 −0
Original line number Diff line number Diff line
@@ -85,5 +85,6 @@ int xfs_scrub_bmap_attr(struct xfs_scrub_context *sc);
int xfs_scrub_bmap_cow(struct xfs_scrub_context *sc);
int xfs_scrub_directory(struct xfs_scrub_context *sc);
int xfs_scrub_xattr(struct xfs_scrub_context *sc);
int xfs_scrub_symlink(struct xfs_scrub_context *sc);

#endif	/* __XFS_SCRUB_SCRUB_H__ */
Loading