From: Anand Jain <anand.jain@oracle.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 0/3] readmirror feature
Date: Thu, 25 Apr 2019 19:59:43 +0800 [thread overview]
Message-ID: <20190425115946.2550-1-anand.jain@oracle.com> (raw)
These patches are tested to be working fine.
Function call chain __btrfs_map_block()->find_live_mirror() uses
thread pid to determine the %mirror_num when the mirror_num=0.
This patch introduces a framework so that we can add policies to determine
the %mirror_num. And adds the devid as the readmirror policy.
The property is stored as an extented attributes of root inode
(BTRFS_FS_TREE_OBJECTID).
User provided devid list is validated against the fs_devices::dev_list.
For example:
Usage:
btrfs property set <mnt> readmirror devid<n>[,<m>...]
btrfs property set <mnt> readmirror ""
mkfs.btrfs -fq -draid1 -mraid1 /dev/sd[b-d] && mount /dev/sdb /btrfs
btrfs prop set /btrfs readmirror devid1,2
btrfs prop get /btrfs readmirror
readmirror=devid1,2
getfattr -n btrfs.readmirror --absolute-names /btrfs
btrfs.readmirror="devid1,2"
btrfs prop set /btrfs readmirror ""
getfattr -n btrfs.readmirror --absolute-names /btrfs
/btrfs: btrfs.readmirror: No such attribute
btrfs prop get /btrfs readmirror
RFC->v1:
Drops pid as one of the readmirror policy choices and as usual remains
as default. And when the devid is reset the readmirror policy falls back
to pid.
Drops the mount -o readmirror idea, it can be added at a later point of
time.
Property now accepts more than 1 devid as readmirror device. As shown
in the example above.
Anand Jain (3):
btrfs: add inode pointer to prop_handler::validate()
btrfs: add readmirror property framework
btrfs: add readmirror devid property
fs/btrfs/props.c | 120 +++++++++++++++++++++++++++++++++++++++++++--
fs/btrfs/props.h | 4 +-
fs/btrfs/volumes.c | 25 +++++++++-
fs/btrfs/volumes.h | 8 +++
fs/btrfs/xattr.c | 2 +-
5 files changed, 150 insertions(+), 9 deletions(-)
Anand Jain (2):
btrfs-progs: add helper to create xattr name
btrfs-progs: add readmirror policy
props.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 68 insertions(+), 7 deletions(-)
--
2.20.1 (Apple Git-117)
next reply other threads:[~2019-04-25 11:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-25 11:59 Anand Jain [this message]
2019-04-25 11:59 ` [PATCH 1/3] btrfs: add inode pointer to prop_handler::validate() Anand Jain
2019-04-25 11:59 ` [PATCH 2/3] btrfs: add readmirror property framework Anand Jain
2019-04-25 11:59 ` [PATCH 3/3] btrfs: add readmirror devid property Anand Jain
2019-04-25 12:00 ` [PATCH 1/2] btrfs-progs: add helper to create xattr name Anand Jain
2019-04-25 12:00 ` [PATCH 2/2] btrfs-progs: add readmirror policy Anand Jain
2019-05-11 15:24 ` [PATCH 0/3] readmirror feature Steven Davies
2019-05-28 13:56 ` Anand Jain
-- strict thread matches above, loose matches on Subject: below --
2019-04-25 11:55 Anand Jain
2019-04-25 11:54 Anand Jain
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=20190425115946.2550-1-anand.jain@oracle.com \
--to=anand.jain@oracle.com \
--cc=linux-btrfs@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.