From: Chandan Babu R <chandanrlinux@gmail.com>
To: linux-xfs@vger.kernel.org
Cc: Chandan Babu R <chandanrlinux@gmail.com>,
darrick.wong@oracle.com, allison.henderson@oracle.com
Subject: [PATCH 2/2] xfsprogs: Add error injection to allocate only single block sized extents for files
Date: Wed, 4 Nov 2020 17:18:59 +0530 [thread overview]
Message-ID: <20201104114900.172147-2-chandanrlinux@gmail.com> (raw)
In-Reply-To: <20201104114900.172147-1-chandanrlinux@gmail.com>
This commit adds XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT error tag which
enables inject command to limit space allocation for files to single
block sized extents.
One way to use this error tag is to,
1. Consume all of the free space by sequentially writing to a file.
2. Punch alternate blocks of the file. This causes CNTBT to contain
sufficient number of one block sized extent records.
3. Inject XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT error tag.
After step 3, space allocation requests issued by XFS kernel module for
files will be limited to single block sized extents only.
ENOSPC error code is returned to userspace when there aren't any "single
block sized" free extents left in the filesystem.
Signed-off-by: Chandan Babu R <chandanrlinux@gmail.com>
---
io/inject.c | 1 +
libxfs/xfs_errortag.h | 4 +++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/io/inject.c b/io/inject.c
index 9e3d5ad4..9a401a1e 100644
--- a/io/inject.c
+++ b/io/inject.c
@@ -56,6 +56,7 @@ error_tag(char *name)
{ XFS_ERRTAG_IUNLINK_FALLBACK, "iunlink_fallback" },
{ XFS_ERRTAG_BUF_IOERROR, "buf_ioerror" },
{ XFS_ERRTAG_REDUCE_MAX_IEXTENTS, "reduce_max_iextents" },
+ { XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT, "bmap_alloc_minlen_extent" },
{ XFS_ERRTAG_MAX, NULL }
};
int count;
diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h
index 1c56fcce..6ca9084b 100644
--- a/libxfs/xfs_errortag.h
+++ b/libxfs/xfs_errortag.h
@@ -57,7 +57,8 @@
#define XFS_ERRTAG_IUNLINK_FALLBACK 34
#define XFS_ERRTAG_BUF_IOERROR 35
#define XFS_ERRTAG_REDUCE_MAX_IEXTENTS 36
-#define XFS_ERRTAG_MAX 37
+#define XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT 37
+#define XFS_ERRTAG_MAX 38
/*
* Random factors for above tags, 1 means always, 2 means 1/2 time, etc.
@@ -99,5 +100,6 @@
#define XFS_RANDOM_IUNLINK_FALLBACK (XFS_RANDOM_DEFAULT/10)
#define XFS_RANDOM_BUF_IOERROR XFS_RANDOM_DEFAULT
#define XFS_RANDOM_REDUCE_MAX_IEXTENTS 1
+#define XFS_RANDOM_BMAP_ALLOC_MINLEN_EXTENT 1
#endif /* __XFS_ERRORTAG_H_ */
--
2.28.0
prev parent reply other threads:[~2020-11-04 11:49 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-04 11:48 [PATCH 1/2] xfsprogs: Add error injection to reduce maximum inode fork extent count Chandan Babu R
2020-11-04 11:48 ` Chandan Babu R [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201104114900.172147-2-chandanrlinux@gmail.com \
--to=chandanrlinux@gmail.com \
--cc=allison.henderson@oracle.com \
--cc=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.