* Re: Raid check didn't fix Current_Pending_Sector, but badblocks -nsv did
From: Marc MERLIN @ 2016-06-06 17:41 UTC (permalink / raw)
To: linux-raid@vger.kernel.org
Howdy, I have a raid 5 where one drive reported this:
197 Current_Pending_Sector 0x0032 200 199 000 Old_age Always - 29
So I did this:
myth:~# echo check > /sys/block/md5/md/sync_action
[173947.749761] md: data-check of RAID array md5
(...)
[370316.769230] md: md5: data-check done.
My understanding was that it was supposed to read every block of every
drive, and if some blocks were unreadable, use parity to rewrite them on
some fresh backup blocks.
If a block returned garbage instead, md5 cannot fix this not knowing which
block is wrong, but I'm assuming the check would have failed with an error.
However after the check is over, I still have 29 Current_Pending_Sector on
that drive.
Since raid check succeeded, I'm going to assume that the sectors were
readable and did not return garbage, or I'd have gotten a parity mismatch
error.
Should then assume that either
1) the smart counter/logic is wrong?
2) the pending sectors started returning correct data again, so linux md has
no idea those blocks are "weak" and I have no easy way to forcibly remap
them.
3) the bad blocks did get remapped somehow, but the smart counter did not get
reset due to a firmware bug
4) other
After 2 days of testing with badblocks, it seems that it's #2, and I'm
not sure if there is anything raid check could have done (probably not)
Since raid check didn't do the job I was hoping for, I ran this instead:
myth:~# badblocks -nsv /dev/sdg
Checking for bad blocks in non-destructive read-write mode
From block 0 to 3907018583
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: 57.87% done, 22:24:15 elapsed. (0/0/0 errors))
And this worked:
197 Current_Pending_Sector 0x0032 200 199 000 Old_age Always - 0
strangely, I also have:
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
I guess this means that my drive's auto reallocation logic is faulty and
that it will not re-allocate blocks that are weak, even after it was
able to read them.
Does that sound correct?
More drive details from before I ran badblocks (not an SMR drive):
Device Model: WDC WD40EFRX-68WT0N0
Serial Number: WD-WCC4E0642444
LU WWN Device Id: 5 0014ee 2b437e9a6
Firmware Version: 80.00A80
User Capacity: 4,000,787,030,016 bytes [4.00 TB]
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 1617
3 Spin_Up_Time 0x0027 175 173 021 Pre-fail Always - 8250
4 Start_Stop_Count 0x0032 094 094 000 Old_age Always - 6773
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 100 253 000 Old_age Always - 0
9 Power_On_Hours 0x0032 074 074 000 Old_age Always - 19092
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 158
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 91
193 Load_Cycle_Count 0x0032 182 182 000 Old_age Always - 54642
194 Temperature_Celsius 0x0022 121 103 000 Old_age Always - 31
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 199 000 Old_age Always - 29
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 199 000 Old_age Always - 2
200 Multi_Zone_Error_Rate 0x0008 200 189 000 Old_age Offline - 0
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 19081 -
# 2 Short offline Completed without error 00% 19057 -
# 3 Short offline Completed without error 00% 19035 -
# 4 Short offline Completed without error 00% 18984 -
# 5 Extended offline Completed without error 00% 18974 -
Thanks,
Marc
--
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/
^ permalink raw reply
* Re: [PATCH 28/45] target: use bio op accessors
From: Hannes Reinecke @ 2016-06-06 15:43 UTC (permalink / raw)
To: Mike Christie, linux-f2fs-devel, linux-ext4, konrad.wilk,
drbd-dev, philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <57559973.1020105@redhat.com>
On 06/06/2016 05:40 PM, Mike Christie wrote:
> On 06/06/2016 01:46 AM, Hannes Reinecke wrote:
>> On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
>>> From: Mike Christie <mchristi@redhat.com>
>>>
>>> Separate the op from the rq_flag_bits and have the target layer
>>> set/get the bio using bio_set_op_attrs/bio_op.
>>>
>>> Signed-off-by: Mike Christie <mchristi@redhat.com>
>>> ---
>>> drivers/target/target_core_iblock.c | 29 ++++++++++++++---------------
>>> drivers/target/target_core_pscsi.c | 2 +-
>>> 2 files changed, 15 insertions(+), 16 deletions(-)
>>>
>>> diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
>>> index c25109c..22af12f 100644
>>> --- a/drivers/target/target_core_iblock.c
>>> +++ b/drivers/target/target_core_iblock.c
>> [ .. ]
>>> @@ -689,18 +690,15 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
>>> * Force writethrough using WRITE_FUA if a volatile write cache
>>> * is not enabled, or if initiator set the Force Unit Access bit.
>>> */
>>> + op = REQ_OP_WRITE;
>>> if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
>>> if (cmd->se_cmd_flags & SCF_FUA)
>>> - rw = WRITE_FUA;
>>> + op_flags = WRITE_FUA;
>>> else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
>>> - rw = WRITE_FUA;
>>> - else
>>> - rw = WRITE;
>>> - } else {
>>> - rw = WRITE;
>>> + op_flags = WRITE_FUA;
>>> }
>> Wrong intendation.
>
> It should be ok. That line is for the QUEUE_FLAG_WC test. We end up with:
>
> op = REQ_OP_WRITE;
> if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
> if (cmd->se_cmd_flags & SCF_FUA)
> op_flags = WRITE_FUA;
> else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
> op_flags = WRITE_FUA;
> }
>
>
>
>
Indeed, you are correct.
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 28/45] target: use bio op accessors
From: Mike Christie @ 2016-06-06 15:40 UTC (permalink / raw)
To: Hannes Reinecke, linux-f2fs-devel, linux-ext4, konrad.wilk,
drbd-dev, philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <57551C57.5090507@suse.de>
On 06/06/2016 01:46 AM, Hannes Reinecke wrote:
> On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
>> From: Mike Christie <mchristi@redhat.com>
>>
>> Separate the op from the rq_flag_bits and have the target layer
>> set/get the bio using bio_set_op_attrs/bio_op.
>>
>> Signed-off-by: Mike Christie <mchristi@redhat.com>
>> ---
>> drivers/target/target_core_iblock.c | 29 ++++++++++++++---------------
>> drivers/target/target_core_pscsi.c | 2 +-
>> 2 files changed, 15 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
>> index c25109c..22af12f 100644
>> --- a/drivers/target/target_core_iblock.c
>> +++ b/drivers/target/target_core_iblock.c
> [ .. ]
>> @@ -689,18 +690,15 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
>> * Force writethrough using WRITE_FUA if a volatile write cache
>> * is not enabled, or if initiator set the Force Unit Access bit.
>> */
>> + op = REQ_OP_WRITE;
>> if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
>> if (cmd->se_cmd_flags & SCF_FUA)
>> - rw = WRITE_FUA;
>> + op_flags = WRITE_FUA;
>> else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
>> - rw = WRITE_FUA;
>> - else
>> - rw = WRITE;
>> - } else {
>> - rw = WRITE;
>> + op_flags = WRITE_FUA;
>> }
> Wrong intendation.
It should be ok. That line is for the QUEUE_FLAG_WC test. We end up with:
op = REQ_OP_WRITE;
if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
if (cmd->se_cmd_flags & SCF_FUA)
op_flags = WRITE_FUA;
else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
op_flags = WRITE_FUA;
}
^ permalink raw reply
* Re: [PATCH 42/45] block, fs, drivers: remove REQ_OP compat defs and related code
From: Hannes Reinecke @ 2016-06-06 6:53 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-43-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> This patch drops the compat definition of req_op where it matches
> the rq_flag_bits definitions, and drops the related old and compat
> code that allowed users to set either the op or flags for the operation.
>
> We also then store the operation in the bi_rw/cmd_flags field similar
> to how we used to store the bio ioprio where it sat in the upper bits
> of the field.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> drivers/scsi/sd.c | 2 +-
> include/linux/bio.h | 3 ---
> include/linux/blk_types.h | 52 +++++++++++++++++----------------------------
> include/linux/blkdev.h | 14 ++++++++----
> include/linux/fs.h | 37 +++++++++++++-------------------
> include/trace/events/f2fs.h | 1 -
> 6 files changed, 46 insertions(+), 63 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 41/45] block, drivers, fs: shrink bi_rw from long to int
From: Hannes Reinecke @ 2016-06-06 6:51 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-42-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> We don't need bi_rw to be so large on 64 bit archs, so
> reduce it to unsigned int.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> block/blk-core.c | 2 +-
> drivers/md/dm-flakey.c | 2 +-
> drivers/md/raid5.c | 6 +++---
> fs/btrfs/check-integrity.c | 4 ++--
> fs/btrfs/inode.c | 2 +-
> include/linux/blk_types.h | 2 +-
> 6 files changed, 9 insertions(+), 9 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 40/45] block: move bio io prio to a new field
From: Hannes Reinecke @ 2016-06-06 6:51 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-41-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> In the next patch, we move drop the compat code and make
> the op a separate value that is hidden in bi_rw. To give
> the op and rq bits flags room to grow this moves prio to
> its own field.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> include/linux/bio.h | 14 ++------------
> include/linux/blk_types.h | 5 ++---
> 2 files changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index 4568647..35108c2 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -47,18 +47,8 @@
> #define bio_op(bio) (op_from_rq_bits((bio)->bi_rw))
> #define bio_set_op_attrs(bio, op, flags) ((bio)->bi_rw |= (op | flags))
>
> -/*
> - * upper 16 bits of bi_rw define the io priority of this bio
> - */
> -#define BIO_PRIO_SHIFT (8 * sizeof(unsigned long) - IOPRIO_BITS)
> -#define bio_prio(bio) ((bio)->bi_rw >> BIO_PRIO_SHIFT)
> -#define bio_prio_valid(bio) ioprio_valid(bio_prio(bio))
> -
> -#define bio_set_prio(bio, prio) do { \
> - WARN_ON(prio >= (1 << IOPRIO_BITS)); \
> - (bio)->bi_rw &= ((1UL << BIO_PRIO_SHIFT) - 1); \
> - (bio)->bi_rw |= ((unsigned long) (prio) << BIO_PRIO_SHIFT); \
> -} while (0)
> +#define bio_prio(bio) (bio)->bi_ioprio
> +#define bio_set_prio(bio, prio) ((bio)->bi_ioprio = prio)
>
> /*
> * various member access, note that bio_data should of course not be used
> diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
> index 6e60baa..2738413 100644
> --- a/include/linux/blk_types.h
> +++ b/include/linux/blk_types.h
> @@ -48,9 +48,8 @@ struct bio {
> struct block_device *bi_bdev;
> unsigned int bi_flags; /* status, command, etc */
> int bi_error;
> - unsigned long bi_rw; /* bottom bits READ/WRITE,
> - * top bits priority
> - */
> + unsigned long bi_rw; /* READ/WRITE */
> + unsigned short bi_ioprio;
>
> struct bvec_iter bi_iter;
>
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH 37/45] drivers: use req op accessor
From: Hannes Reinecke @ 2016-06-06 6:50 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-38-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> The req operation REQ_OP is separated from the rq_flag_bits
> definition. This converts the block layer drivers to
> use req_op to get the op from the request struct.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> drivers/block/loop.c | 6 +++---
> drivers/block/mtip32xx/mtip32xx.c | 2 +-
> drivers/block/nbd.c | 2 +-
> drivers/block/rbd.c | 4 ++--
> drivers/block/xen-blkfront.c | 8 +++++---
> drivers/ide/ide-floppy.c | 2 +-
> drivers/md/dm.c | 2 +-
> drivers/mmc/card/block.c | 7 +++----
> drivers/mmc/card/queue.c | 6 ++----
> drivers/mmc/card/queue.h | 5 ++++-
> drivers/mtd/mtd_blkdevs.c | 2 +-
> drivers/nvme/host/core.c | 2 +-
> drivers/nvme/host/nvme.h | 4 ++--
> drivers/scsi/sd.c | 25 ++++++++++++++++---------
> 14 files changed, 43 insertions(+), 34 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 28/45] target: use bio op accessors
From: Hannes Reinecke @ 2016-06-06 6:46 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-29-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> Separate the op from the rq_flag_bits and have the target layer
> set/get the bio using bio_set_op_attrs/bio_op.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> drivers/target/target_core_iblock.c | 29 ++++++++++++++---------------
> drivers/target/target_core_pscsi.c | 2 +-
> 2 files changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
> index c25109c..22af12f 100644
> --- a/drivers/target/target_core_iblock.c
> +++ b/drivers/target/target_core_iblock.c
[ .. ]
> @@ -689,18 +690,15 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
> * Force writethrough using WRITE_FUA if a volatile write cache
> * is not enabled, or if initiator set the Force Unit Access bit.
> */
> + op = REQ_OP_WRITE;
> if (test_bit(QUEUE_FLAG_FUA, &q->queue_flags)) {
> if (cmd->se_cmd_flags & SCF_FUA)
> - rw = WRITE_FUA;
> + op_flags = WRITE_FUA;
> else if (!test_bit(QUEUE_FLAG_WC, &q->queue_flags))
> - rw = WRITE_FUA;
> - else
> - rw = WRITE;
> - } else {
> - rw = WRITE;
> + op_flags = WRITE_FUA;
> }
Wrong intendation.
> } else {
> - rw = READ;
> + op = REQ_OP_READ;
> }
>
> ibr = kzalloc(sizeof(struct iblock_req), GFP_KERNEL);
> @@ -714,7 +712,7 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
> return 0;
> }
>
> - bio = iblock_get_bio(cmd, block_lba, sgl_nents, rw);
> + bio = iblock_get_bio(cmd, block_lba, sgl_nents, op, op_flags);
> if (!bio)
> goto fail_free_ibr;
>
> @@ -738,7 +736,8 @@ iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
> bio_cnt = 0;
> }
>
> - bio = iblock_get_bio(cmd, block_lba, sg_num, rw);
> + bio = iblock_get_bio(cmd, block_lba, sg_num, op,
> + op_flags);
> if (!bio)
> goto fail_put_bios;
>
> diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
> index de18790..81564c8 100644
> --- a/drivers/target/target_core_pscsi.c
> +++ b/drivers/target/target_core_pscsi.c
> @@ -922,7 +922,7 @@ pscsi_map_sg(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
> goto fail;
>
> if (rw)
> - bio->bi_rw |= REQ_WRITE;
> + bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
>
> pr_debug("PSCSI: Allocated bio: %p,"
> " dir: %s nr_vecs: %d\n", bio,
>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 25/45] bcache: use bio op accessors
From: Hannes Reinecke @ 2016-06-06 6:45 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-26-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> Separate the op from the rq_flag_bits and have bcache
> set/get the bio using bio_set_op_attrs/bio_op.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> drivers/md/bcache/btree.c | 4 ++--
> drivers/md/bcache/debug.c | 4 ++--
> drivers/md/bcache/journal.c | 7 ++++---
> drivers/md/bcache/movinggc.c | 2 +-
> drivers/md/bcache/request.c | 14 +++++++-------
> drivers/md/bcache/super.c | 24 +++++++++++++-----------
> drivers/md/bcache/writeback.c | 4 ++--
> 7 files changed, 31 insertions(+), 28 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 24/45] dm: use bio op accessors
From: Hannes Reinecke @ 2016-06-06 6:43 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-25-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:32 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> Separate the op from the rq_flag_bits and have dm
> set/get the bio using bio_set_op_attrs/bio_op.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 09/45] block discard: use bio set op accessor
From: Hannes Reinecke @ 2016-06-06 6:21 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-10-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:31 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> This converts the block issue discard helper and users to use
> the bio_set_op_attrs accessor and only pass in the operation flags
> like REQ_SEQURE.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> block/blk-lib.c | 13 +++++++------
> drivers/md/dm-thin.c | 2 +-
> include/linux/blkdev.h | 3 ++-
> 3 files changed, 10 insertions(+), 8 deletions(-)
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH 08/45] block, fs, mm, drivers: use bio set/get op accessors
From: Hannes Reinecke @ 2016-06-06 6:20 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-9-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:31 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> This patch converts the simple bi_rw use cases in the block,
> drivers, mm and fs code to set/get the bio operation using
> bio_set_op_attrs/bio_op
>
> These should be simple one or two liner cases, so I just did them
> in one patch. The next patches handle the more complicated
> cases in a module per patch.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
>
> v5:
> 1. Add missed crypto call.
> 2. Change nfs bi_rw check to bi_op.
>
> block/bio.c | 13 ++++++-------
> block/blk-core.c | 6 +++---
> block/blk-flush.c | 2 +-
> block/blk-lib.c | 4 ++--
> block/blk-map.c | 2 +-
> block/blk-merge.c | 12 ++++++------
> drivers/block/brd.c | 2 +-
> drivers/block/floppy.c | 2 +-
> drivers/block/pktcdvd.c | 4 ++--
> drivers/block/rsxx/dma.c | 2 +-
> drivers/block/zram/zram_drv.c | 2 +-
> drivers/lightnvm/rrpc.c | 6 +++---
> drivers/scsi/osd/osd_initiator.c | 8 ++++----
> drivers/staging/lustre/lustre/llite/lloop.c | 6 +++---
> fs/crypto/crypto.c | 2 +-
> fs/exofs/ore.c | 2 +-
> fs/ext4/page-io.c | 6 +++---
> fs/ext4/readpage.c | 2 +-
> fs/jfs/jfs_logmgr.c | 4 ++--
> fs/jfs/jfs_metapage.c | 4 ++--
> fs/logfs/dev_bdev.c | 12 ++++++------
> fs/nfs/blocklayout/blocklayout.c | 4 ++--
> include/linux/bio.h | 15 ++++++++++-----
> mm/page_io.c | 4 ++--
> 24 files changed, 65 insertions(+), 61 deletions(-)
>
[ .. ]
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index 09c5308..4568647 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -109,18 +109,23 @@ static inline bool bio_has_data(struct bio *bio)
> {
> if (bio &&
> bio->bi_iter.bi_size &&
> - !(bio->bi_rw & REQ_DISCARD))
> + bio_op(bio) != REQ_OP_DISCARD)
> return true;
>
> return false;
> }
>
> +static inline bool bio_no_advance_iter(struct bio *bio)
> +{
> + return bio_op(bio) == REQ_OP_DISCARD || bio_op(bio) == REQ_OP_WRITE_SAME;
> +}
> +
> static inline bool bio_is_rw(struct bio *bio)
> {
> if (!bio_has_data(bio))
> return false;
>
> - if (bio->bi_rw & BIO_NO_ADVANCE_ITER_MASK)
> + if (bio_no_advance_iter(bio))
> return false;
>
> return true;
> @@ -228,7 +233,7 @@ static inline void bio_advance_iter(struct bio *bio, struct bvec_iter *iter,
> {
> iter->bi_sector += bytes >> 9;
>
> - if (bio->bi_rw & BIO_NO_ADVANCE_ITER_MASK)
> + if (bio_no_advance_iter(bio))
> iter->bi_size -= bytes;
> else
> bvec_iter_advance(bio->bi_io_vec, iter, bytes);
Hmm. Can't you drop 'BIO_NO_ADVANCE_ITER_MASK' after this patch?
> @@ -256,10 +261,10 @@ static inline unsigned bio_segments(struct bio *bio)
> * differently:
> */
>
> - if (bio->bi_rw & REQ_DISCARD)
> + if (bio_op(bio) == REQ_OP_DISCARD)
> return 1;
>
> - if (bio->bi_rw & REQ_WRITE_SAME)
> + if (bio_op(bio) == REQ_OP_WRITE_SAME)
> return 1;
>
> bio_for_each_segment(bv, bio, iter)
> diff --git a/mm/page_io.c b/mm/page_io.c
> index 5a5fd66..dcc5d37 100644
> --- a/mm/page_io.c
> +++ b/mm/page_io.c
> @@ -317,7 +317,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
> ret = -ENOMEM;
> goto out;
> }
> - bio->bi_rw = WRITE;
> + bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
> if (wbc->sync_mode == WB_SYNC_ALL)
> bio->bi_rw |= REQ_SYNC;
> count_vm_event(PSWPOUT);
> @@ -370,7 +370,7 @@ int swap_readpage(struct page *page)
> ret = -ENOMEM;
> goto out;
> }
> - bio->bi_rw = READ;
> + bio_set_op_attrs(bio, REQ_OP_READ, 0);
> count_vm_event(PSWPIN);
> submit_bio(bio);
> out:
>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH 07/45] bcache: use op_is_write instead of checking for REQ_WRITE
From: Hannes Reinecke @ 2016-06-06 6:16 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-8-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:31 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> We currently set REQ_WRITE/WRITE for all non READ IOs
> like discard, flush, writesame, etc. In the next patches where we
> no longer set up the op as a bitmap, we will not be able to
> detect a operation direction like writesame by testing if REQ_WRITE is
> set.
>
> This has bcache use the op_is_write helper which will do the right
> thing.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
> drivers/md/bcache/io.c | 2 +-
> drivers/md/bcache/request.c | 6 +++---
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
(Could probably folded together with the two previous patches)
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 06/45] dm: use op_is_write instead of checking for REQ_WRITE
From: Hannes Reinecke @ 2016-06-06 6:15 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-7-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:31 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> We currently set REQ_WRITE/WRITE for all non READ IOs
> like discard, flush, writesame, etc. In the next patches where we
> no longer set up the op as a bitmap, we will not be able to
> detect a operation direction like writesame by testing if REQ_WRITE is
> set.
>
> This has dm use the op_is_write helper which will do the right
> thing.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
(Could probably be folded into the previous patch)
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH 05/45] block, drivers, cgroup: use op_is_write helper instead of checking for REQ_WRITE
From: Hannes Reinecke @ 2016-06-06 6:14 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-6-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:31 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> We currently set REQ_WRITE/WRITE for all non READ IOs
> like discard, flush, writesame, etc. In the next patches where we
> no longer set up the op as a bitmap, we will not be able to
> detect a operation direction like writesame by testing if REQ_WRITE is
> set.
>
> This patch converts the drivers and cgroup to use the
> op_is_write helper. This should just cover the simple
> cases. I did dm, md and bcache in their own patches
> because they were more involved.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 02/45] block: add REQ_OP definitions and helpers
From: Hannes Reinecke @ 2016-06-06 6:13 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-3-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:31 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> The following patches separate the operation (WRITE, READ, DISCARD,
> etc) from the rq_flag_bits flags. This patch adds definitions for
> request/bio operations (REQ_OPs) and adds request/bio accessors to
> get/set the op.
>
> In this patch the REQ_OPs match the REQ rq_flag_bits ones
> for compat reasons while all the code is converted to use the
> op accessors in the set. In the last patches the op will become a
> number and the accessors and helpers in this patch will be dropped
> or updated.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply
* Re: [PATCH 01/45] block/fs/drivers: remove rw argument from submit_bio
From: Hannes Reinecke @ 2016-06-06 6:12 UTC (permalink / raw)
To: mchristi, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel
In-Reply-To: <1465155145-10812-2-git-send-email-mchristi@redhat.com>
On 06/05/2016 09:31 PM, mchristi@redhat.com wrote:
> From: Mike Christie <mchristi@redhat.com>
>
> This has callers of submit_bio/submit_bio_wait set the bio->bi_rw
> instead of passing it in. This makes that use the same as
> generic_make_request and how we set the other bio fields.
>
> Signed-off-by: Mike Christie <mchristi@redhat.com>
> ---
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply
* Re: [RFC v2 1/3] block: Introduce blk_bio_map_sg() to map one bio
From: Baolin Wang @ 2016-06-06 5:04 UTC (permalink / raw)
To: Jens Axboe
Cc: Alasdair G Kergon, Mike Snitzer, open list:DEVICE-MAPPER (LVM),
Herbert Xu, David Miller, Eric Biggers, Joonsoo Kim,
tadeusz.struk, smueller, Masanari Iida, Shaohua Li, Dan Williams,
Martin K. Petersen, Sagi Grimberg, Kent Overstreet, Keith Busch,
Tejun Heo, Ming Lei, Mark Brown, Arnd Bergmann, linux-crypto,
linux-block, open list:SOFTWARE RAID (Multiple Disks) SUPPORT,
LKML <linux-ke>
In-Reply-To: <57519670.6050306@kernel.dk>
On 3 June 2016 at 22:38, Jens Axboe <axboe@kernel.dk> wrote:
> On 05/27/2016 05:11 AM, Baolin Wang wrote:
>>
>> +/*
>> + * Map a bio to scatterlist, return number of sg entries setup. Caller
>> must
>> + * make sure sg can hold bio segments entries.
>> + */
>> +int blk_bio_map_sg(struct request_queue *q, struct bio *bio,
>> + struct scatterlist *sglist)
>> +{
>> + struct scatterlist *sg = NULL;
>> + int nsegs = 0;
>> +
>> + if (bio)
>> + nsegs = __blk_bios_map_sg(q, bio, sglist, &sg, true);
>> +
>> + if (sg)
>> + sg_mark_end(sg);
>
>
> Put that if (sg) inside the if (bio) section, 'sg' isn't going to be
> non-NULL outside of that.
>
> Additionally, who would call this with a NULL bio? That seems odd, I'd
> get rid of that check completely.
OK. I'll fix these in next version. Thanks for your comments.
--
Baolin.wang
Best Regards
^ permalink raw reply
* Re: [RFC v2 1/3] block: Introduce blk_bio_map_sg() to map one bio
From: Baolin Wang @ 2016-06-06 5:03 UTC (permalink / raw)
To: Jens Axboe
Cc: Alasdair G Kergon, Mike Snitzer, open list:DEVICE-MAPPER (LVM),
Herbert Xu, David Miller, Eric Biggers, Joonsoo Kim,
tadeusz.struk, smueller, Masanari Iida, Shaohua Li, Dan Williams,
Martin K. Petersen, Sagi Grimberg, Kent Overstreet, Keith Busch,
Tejun Heo, Ming Lei, Mark Brown, Arnd Bergmann, linux-crypto,
linux-block, open list:SOFTWARE RAID (Multiple Disks) SUPPORT,
LKML <linux-ke>
In-Reply-To: <575195CD.6090607@kernel.dk>
On 3 June 2016 at 22:35, Jens Axboe <axboe@kernel.dk> wrote:
> On 05/27/2016 05:11 AM, Baolin Wang wrote:
>>
>> In dm-crypt, it need to map one bio to scatterlist for improving the
>> hardware engine encryption efficiency. Thus this patch introduces the
>> blk_bio_map_sg() function to map one bio with scatterlists.
>>
>> For avoiding the duplicated code in __blk_bios_map_sg() function, add
>> one parameter to distinguish bio map or request map.
>
>
> Just detach the bio in blk_bio_map_sg() instead of adding a separate case
> (and argument) for it in __blk_bios_map_sg().
Make sense.
>
> --
> Jens Axboe
>
--
Baolin.wang
Best Regards
^ permalink raw reply
* mdadm 3.4-1, error msg. on boot - no /usr/lib/systemd/scripts/mdadm_env.sh
From: David C. Rankin @ 2016-06-06 1:03 UTC (permalink / raw)
To: mdraid
Neil, All,
I'm chasing down the reason there is no /usr/lib/systemd/scripts/mdadm_env.sh
provided with mdadm. This is more a curiosity really as mdmonitor continues to
run, but it always throws an error at boot:
Jun 05 17:12:47 valhalla systemd[454]: mdmonitor.service: Failed at step EXEC
spawning /usr/lib/systemd/scripts/mdadm_env.sh: No such file or directory
I have several Arch servers, all on mdadm 3.4-1. I ran into an issue a year or
so ago with a boot error with mdmonitor due to my failure to provide MAILADDR in
/etc/mdadm.com, but that has long since been corrected:
# cat /etc/mdadm.conf
DEVICE partitions
ARRAY /dev/md0 metadata=1.2 name=archiso:0 UUID=1b67f2d4:4911f2c5:469f9dcf:315814ce
ARRAY /dev/md1 metadata=1.2 name=archiso:1 UUID=0542c5c9:3802b256:32e97884:a2e49f53
ARRAY /dev/md2 metadata=1.2 name=archiso:2 UUID=812e8f85:0c4efbef:a0c02f49:215df35e
ARRAY /dev/md3 metadata=1.2 name=archiso:3 UUID=80a3bf76:e6421b06:6edb2a88:741e8b6f
MAILADDR david@mydomain.com
PROGRAM /usr/sbin/handle-mdadm-events
So following the rabbit trail further, I check and there is no
/usr/lib/systemd/scripts/mdadm_env.sh on my system and it is not provided as
part of the mdadm package:
# pacman -Ql mdadm
mdadm /etc/mdadm.conf
mdadm /usr/bin/mdadm
mdadm /usr/bin/mdassemble
mdadm /usr/bin/mdmon
mdadm /usr/lib/initcpio/hooks/mdadm
mdadm /usr/lib/initcpio/install/mdadm
mdadm /usr/lib/initcpio/install/mdadm_udev
mdadm /usr/lib/systemd/system-shutdown/mdadm.shutdown
mdadm /usr/lib/systemd/system/mdadm-grow-continue@.service
mdadm /usr/lib/systemd/system/mdadm-last-resort@.service
mdadm /usr/lib/systemd/system/mdadm-last-resort@.timer
mdadm /usr/lib/systemd/system/mdmon@.service
mdadm /usr/lib/systemd/system/mdmonitor.service
mdadm /usr/lib/udev/rules.d/63-md-raid-arrays.rules
mdadm /usr/lib/udev/rules.d/64-md-raid-assembly.rules
<snip man pages>
However, the mdmonitor.service file is certainly looking for one:
# cat /usr/lib/systemd/system/mdmonitor.service
# This file is part of mdadm.
#
# mdadm is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
[Unit]
Description=MD array monitor
DefaultDependencies=no
[Service]
Environment= MDADM_MONITOR_ARGS=--scan
EnvironmentFile=-/run/sysconfig/mdadm
ExecStartPre=-/usr/lib/systemd/scripts/mdadm_env.sh
ExecStart=/sbin/mdadm --monitor $MDADM_MONITOR_ARGS
Further, there isn't even a /run/sysconfig directory on Arch (which looks more
SuSE'esque). Checking the status, mdmonitor is happily running and doing it's job:
# sc status mdmonitor
● mdmonitor.service - MD array monitor
Loaded: loaded (/usr/lib/systemd/system/mdmonitor.service; static; vendor
preset: disabled)
Active: active (running) since Fri 2016-05-27 08:32:26 CDT; 1 weeks 2 days ago
Process: 353 ExecStartPre=/usr/lib/systemd/scripts/mdadm_env.sh (code=exited,
status=203/EXEC)
Main PID: 378 (mdadm)
Tasks: 1 (limit: 512)
CGroup: /system.slice/mdmonitor.service
└─378 /sbin/mdadm --monitor --scan
May 27 08:32:26 valkyrie systemd[1]: Starting MD array monitor...
May 27 08:32:26 valkyrie systemd[1]: Started MD array monitor.
So the issue here is "is this a missing file from the Arch packaging of
mdadm?", "or is there just an oversight in the service file?" I apoligize if
this has been asked before, searching, I don't find anything directly. So is
this an Arch issue or a mdadm issue?
I know it's not a big issue, but I'd like to clean up the boot message
properly. What say the devs?
--
David C. Rankin, J.D.,P.E.
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH 42/45] block, fs, drivers: remove REQ_OP compat defs and related code
From: kbuild test robot @ 2016-06-05 21:49 UTC (permalink / raw)
Cc: linux-bcache, linux-block, osd-dev, ocfs2-devel, linux-scsi,
konrad.wilk, linux-kernel, xfs, philipp.reisner, linux-f2fs-devel,
linux-raid, Mike Christie, dm-devel, target-devel, linux-mtd,
kbuild-all, linux-fsdevel, lars.ellenberg, linux-ext4,
linux-btrfs, drbd-dev
In-Reply-To: <1465155145-10812-43-git-send-email-mchristi@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1925 bytes --]
Hi,
[auto build test ERROR on v4.7-rc1]
[cannot apply to dm/for-next md/for-next next-20160603]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/mchristi-redhat-com/v8-separate-operations-from-flags-in-the-bio-request-structs/20160606-040240
config: blackfin-BF526-EZBRD_defconfig (attached as .config)
compiler: bfin-uclinux-gcc (GCC) 4.6.3
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=blackfin
All errors (new ones prefixed by >>):
drivers/built-in.o: In function `sd_init_command':
>> drivers/scsi/sd.c:1141: undefined reference to `__ucmpdi2'
vim +1141 drivers/scsi/sd.c
^1da177e Linus Torvalds 2005-04-16 1135 }
^1da177e Linus Torvalds 2005-04-16 1136
87949eee Christoph Hellwig 2014-06-28 1137 static int sd_init_command(struct scsi_cmnd *cmd)
87949eee Christoph Hellwig 2014-06-28 1138 {
87949eee Christoph Hellwig 2014-06-28 1139 struct request *rq = cmd->request;
87949eee Christoph Hellwig 2014-06-28 1140
b826ba83 Mike Christie 2016-06-05 @1141 switch (req_op(rq)) {
b826ba83 Mike Christie 2016-06-05 1142 case REQ_OP_DISCARD:
87949eee Christoph Hellwig 2014-06-28 1143 return sd_setup_discard_cmnd(cmd);
b826ba83 Mike Christie 2016-06-05 1144 case REQ_OP_WRITE_SAME:
:::::: The code at line 1141 was first introduced by commit
:::::: b826ba83985b86029288d8cc24fb93ce96947b18 drivers: use req op accessor
:::::: TO: Mike Christie <mchristi@redhat.com>
:::::: CC: 0day robot <fengguang.wu@intel.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 14347 bytes --]
[-- Attachment #3: Type: text/plain, Size: 121 bytes --]
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply
* Re: [PATCH 01/45] block/fs/drivers: remove rw argument from submit_bio
From: kbuild test robot @ 2016-06-05 21:48 UTC (permalink / raw)
Cc: kbuild-all, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel, Mike Christie
In-Reply-To: <1465155145-10812-2-git-send-email-mchristi@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 3792 bytes --]
Hi,
[auto build test WARNING on v4.7-rc1]
[cannot apply to dm/for-next md/for-next next-20160603]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/mchristi-redhat-com/v8-separate-operations-from-flags-in-the-bio-request-structs/20160606-040240
config: i386-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All warnings (new ones prefixed by >>):
fs/ext4/crypto.c: In function 'ext4_encrypted_zeroout':
>> fs/ext4/crypto.c:442:25: warning: passing argument 1 of 'submit_bio_wait' makes pointer from integer without a cast [-Wint-conversion]
err = submit_bio_wait(WRITE, bio);
^
In file included from include/linux/blkdev.h:19:0,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
include/linux/bio.h:476:12: note: expected 'struct bio *' but argument is of type 'long long unsigned int'
extern int submit_bio_wait(struct bio *bio);
^~~~~~~~~~~~~~~
fs/ext4/crypto.c:442:9: error: too many arguments to function 'submit_bio_wait'
err = submit_bio_wait(WRITE, bio);
^~~~~~~~~~~~~~~
In file included from include/linux/blkdev.h:19:0,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
include/linux/bio.h:476:12: note: declared here
extern int submit_bio_wait(struct bio *bio);
^~~~~~~~~~~~~~~
vim +/submit_bio_wait +442 fs/ext4/crypto.c
b30ab0e0 Michael Halcrow 2015-04-12 426 goto errout;
b30ab0e0 Michael Halcrow 2015-04-12 427 }
b30ab0e0 Michael Halcrow 2015-04-12 428 bio->bi_bdev = inode->i_sb->s_bdev;
36086d43 Theodore Ts'o 2015-10-03 429 bio->bi_iter.bi_sector =
36086d43 Theodore Ts'o 2015-10-03 430 pblk << (inode->i_sb->s_blocksize_bits - 9);
36086d43 Theodore Ts'o 2015-10-03 431 ret = bio_add_page(bio, ciphertext_page,
b30ab0e0 Michael Halcrow 2015-04-12 432 inode->i_sb->s_blocksize, 0);
36086d43 Theodore Ts'o 2015-10-03 433 if (ret != inode->i_sb->s_blocksize) {
36086d43 Theodore Ts'o 2015-10-03 434 /* should never happen! */
36086d43 Theodore Ts'o 2015-10-03 435 ext4_msg(inode->i_sb, KERN_ERR,
36086d43 Theodore Ts'o 2015-10-03 436 "bio_add_page failed: %d", ret);
36086d43 Theodore Ts'o 2015-10-03 437 WARN_ON(1);
b30ab0e0 Michael Halcrow 2015-04-12 438 bio_put(bio);
36086d43 Theodore Ts'o 2015-10-03 439 err = -EIO;
b30ab0e0 Michael Halcrow 2015-04-12 440 goto errout;
b30ab0e0 Michael Halcrow 2015-04-12 441 }
b30ab0e0 Michael Halcrow 2015-04-12 @442 err = submit_bio_wait(WRITE, bio);
36086d43 Theodore Ts'o 2015-10-03 443 if ((err == 0) && bio->bi_error)
36086d43 Theodore Ts'o 2015-10-03 444 err = -EIO;
95ea68b4 Theodore Ts'o 2015-05-31 445 bio_put(bio);
b30ab0e0 Michael Halcrow 2015-04-12 446 if (err)
b30ab0e0 Michael Halcrow 2015-04-12 447 goto errout;
36086d43 Theodore Ts'o 2015-10-03 448 lblk++; pblk++;
b30ab0e0 Michael Halcrow 2015-04-12 449 }
b30ab0e0 Michael Halcrow 2015-04-12 450 err = 0;
:::::: The code at line 442 was first introduced by commit
:::::: b30ab0e03407d2aa2d9316cba199c757e4bfc8ad ext4 crypto: add ext4 encryption facilities
:::::: TO: Michael Halcrow <mhalcrow@google.com>
:::::: CC: Theodore Ts'o <tytso@mit.edu>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 54396 bytes --]
^ permalink raw reply
* Re: [PATCH 42/45] block, fs, drivers: remove REQ_OP compat defs and related code
From: kbuild test robot @ 2016-06-05 21:43 UTC (permalink / raw)
Cc: kbuild-all, linux-f2fs-devel, linux-ext4, konrad.wilk, drbd-dev,
philipp.reisner, lars.ellenberg, linux-raid, dm-devel,
linux-fsdevel, linux-bcache, linux-block, linux-kernel,
linux-scsi, linux-mtd, target-devel, linux-btrfs, osd-dev, xfs,
ocfs2-devel, Mike Christie
In-Reply-To: <1465155145-10812-43-git-send-email-mchristi@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 940 bytes --]
Hi,
[auto build test ERROR on v4.7-rc1]
[cannot apply to dm/for-next md/for-next next-20160603]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/mchristi-redhat-com/v8-separate-operations-from-flags-in-the-bio-request-structs/20160606-040240
config: m32r-opsput_defconfig (attached as .config)
compiler: m32r-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m32r
All errors (new ones prefixed by >>):
>> ERROR: "__ucmpdi2" [drivers/scsi/sd_mod.ko] undefined!
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 8852 bytes --]
^ permalink raw reply
* Re: [PATCH 01/45] block/fs/drivers: remove rw argument from submit_bio
From: kbuild test robot @ 2016-06-05 21:22 UTC (permalink / raw)
Cc: linux-bcache, linux-block, osd-dev, ocfs2-devel, linux-scsi,
konrad.wilk, linux-kernel, xfs, philipp.reisner, linux-f2fs-devel,
linux-raid, Mike Christie, dm-devel, target-devel, linux-mtd,
kbuild-all, linux-fsdevel, lars.ellenberg, linux-ext4,
linux-btrfs, drbd-dev
In-Reply-To: <1465155145-10812-2-git-send-email-mchristi@redhat.com>
Hi,
[auto build test WARNING on v4.7-rc1]
[cannot apply to dm/for-next md/for-next next-20160603]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/mchristi-redhat-com/v8-separate-operations-from-flags-in-the-bio-request-structs/20160606-040240
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
include/linux/compiler.h:232:8: sparse: attribute 'no_sanitize_address': unknown attribute
>> fs/ext4/crypto.c:442:38: sparse: too many arguments for function submit_bio_wait
In file included from include/linux/fs.h:31:0,
from include/linux/seq_file.h:10,
from include/linux/pinctrl/consumer.h:17,
from include/linux/pinctrl/devinfo.h:21,
from include/linux/device.h:24,
from include/linux/genhd.h:64,
from include/linux/blkdev.h:9,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
fs/ext4/crypto.c: In function 'ext4_encrypted_zeroout':
include/linux/blk_types.h:194:20: warning: passing argument 1 of 'submit_bio_wait' makes pointer from integer without a cast [-Wint-conversion]
#define REQ_WRITE (1ULL << __REQ_WRITE)
^
include/linux/fs.h:196:19: note: in expansion of macro 'REQ_WRITE'
#define RW_MASK REQ_WRITE
^~~~~~~~~
include/linux/fs.h:200:17: note: in expansion of macro 'RW_MASK'
#define WRITE RW_MASK
^~~~~~~
fs/ext4/crypto.c:442:25: note: in expansion of macro 'WRITE'
err = submit_bio_wait(WRITE, bio);
^~~~~
In file included from include/linux/blkdev.h:19:0,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
include/linux/bio.h:476:12: note: expected 'struct bio *' but argument is of type 'long long unsigned int'
extern int submit_bio_wait(struct bio *bio);
^~~~~~~~~~~~~~~
fs/ext4/crypto.c:442:9: error: too many arguments to function 'submit_bio_wait'
err = submit_bio_wait(WRITE, bio);
^~~~~~~~~~~~~~~
In file included from include/linux/blkdev.h:19:0,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
include/linux/bio.h:476:12: note: declared here
extern int submit_bio_wait(struct bio *bio);
^~~~~~~~~~~~~~~
vim +442 fs/ext4/crypto.c
b30ab0e0 Michael Halcrow 2015-04-12 426 goto errout;
b30ab0e0 Michael Halcrow 2015-04-12 427 }
b30ab0e0 Michael Halcrow 2015-04-12 428 bio->bi_bdev = inode->i_sb->s_bdev;
36086d43 Theodore Ts'o 2015-10-03 429 bio->bi_iter.bi_sector =
36086d43 Theodore Ts'o 2015-10-03 430 pblk << (inode->i_sb->s_blocksize_bits - 9);
36086d43 Theodore Ts'o 2015-10-03 431 ret = bio_add_page(bio, ciphertext_page,
b30ab0e0 Michael Halcrow 2015-04-12 432 inode->i_sb->s_blocksize, 0);
36086d43 Theodore Ts'o 2015-10-03 433 if (ret != inode->i_sb->s_blocksize) {
36086d43 Theodore Ts'o 2015-10-03 434 /* should never happen! */
36086d43 Theodore Ts'o 2015-10-03 435 ext4_msg(inode->i_sb, KERN_ERR,
36086d43 Theodore Ts'o 2015-10-03 436 "bio_add_page failed: %d", ret);
36086d43 Theodore Ts'o 2015-10-03 437 WARN_ON(1);
b30ab0e0 Michael Halcrow 2015-04-12 438 bio_put(bio);
36086d43 Theodore Ts'o 2015-10-03 439 err = -EIO;
b30ab0e0 Michael Halcrow 2015-04-12 440 goto errout;
b30ab0e0 Michael Halcrow 2015-04-12 441 }
b30ab0e0 Michael Halcrow 2015-04-12 @442 err = submit_bio_wait(WRITE, bio);
36086d43 Theodore Ts'o 2015-10-03 443 if ((err == 0) && bio->bi_error)
36086d43 Theodore Ts'o 2015-10-03 444 err = -EIO;
95ea68b4 Theodore Ts'o 2015-05-31 445 bio_put(bio);
b30ab0e0 Michael Halcrow 2015-04-12 446 if (err)
b30ab0e0 Michael Halcrow 2015-04-12 447 goto errout;
36086d43 Theodore Ts'o 2015-10-03 448 lblk++; pblk++;
b30ab0e0 Michael Halcrow 2015-04-12 449 }
b30ab0e0 Michael Halcrow 2015-04-12 450 err = 0;
:::::: The code at line 442 was first introduced by commit
:::::: b30ab0e03407d2aa2d9316cba199c757e4bfc8ad ext4 crypto: add ext4 encryption facilities
:::::: TO: Michael Halcrow <mhalcrow@google.com>
:::::: CC: Theodore Ts'o <tytso@mit.edu>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply
* Re: [PATCH 42/45] block, fs, drivers: remove REQ_OP compat defs and related code
From: kbuild test robot @ 2016-06-05 20:37 UTC (permalink / raw)
Cc: linux-bcache, linux-block, osd-dev, ocfs2-devel, linux-scsi,
konrad.wilk, linux-kernel, xfs, philipp.reisner, linux-f2fs-devel,
linux-raid, Mike Christie, dm-devel, target-devel, linux-mtd,
kbuild-all, linux-fsdevel, lars.ellenberg, linux-ext4,
linux-btrfs, drbd-dev
In-Reply-To: <1465155145-10812-43-git-send-email-mchristi@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 3587 bytes --]
Hi,
[auto build test WARNING on v4.7-rc1]
[cannot apply to dm/for-next md/for-next next-20160603]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/mchristi-redhat-com/v8-separate-operations-from-flags-in-the-bio-request-structs/20160606-040240
config: x86_64-randconfig-i0-201623 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All warnings (new ones prefixed by >>):
In file included from include/linux/genhd.h:67:0,
from include/linux/blkdev.h:9,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
fs/ext4/crypto.c: In function 'ext4_encrypted_zeroout':
>> include/linux/fs.h:197:19: warning: passing argument 1 of 'submit_bio_wait' makes pointer from integer without a cast [-Wint-conversion]
#define RW_MASK REQ_OP_WRITE
^
include/linux/fs.h:201:17: note: in expansion of macro 'RW_MASK'
#define WRITE RW_MASK
^~~~~~~
fs/ext4/crypto.c:442:25: note: in expansion of macro 'WRITE'
err = submit_bio_wait(WRITE, bio);
^~~~~
In file included from include/linux/blkdev.h:19:0,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
include/linux/bio.h:471:12: note: expected 'struct bio *' but argument is of type 'int'
extern int submit_bio_wait(struct bio *bio);
^~~~~~~~~~~~~~~
fs/ext4/crypto.c:442:9: error: too many arguments to function 'submit_bio_wait'
err = submit_bio_wait(WRITE, bio);
^~~~~~~~~~~~~~~
In file included from include/linux/blkdev.h:19:0,
from fs/ext4/ext4.h:20,
from fs/ext4/ext4_extents.h:22,
from fs/ext4/crypto.c:37:
include/linux/bio.h:471:12: note: declared here
extern int submit_bio_wait(struct bio *bio);
^~~~~~~~~~~~~~~
vim +/submit_bio_wait +197 include/linux/fs.h
181 * READA Used for read-ahead operations. Lower priority, and the
182 * block layer could (in theory) choose to ignore this
183 * request if it runs into resource problems.
184 * WRITE A normal async write. Device will be plugged.
185 * WRITE_SYNC Synchronous write. Identical to WRITE, but passes down
186 * the hint that someone will be waiting on this IO
187 * shortly. The write equivalent of READ_SYNC.
188 * WRITE_ODIRECT Special case write for O_DIRECT only.
189 * WRITE_FLUSH Like WRITE_SYNC but with preceding cache flush.
190 * WRITE_FUA Like WRITE_SYNC but data is guaranteed to be on
191 * non-volatile media on completion.
192 * WRITE_FLUSH_FUA Combination of WRITE_FLUSH and FUA. The IO is preceded
193 * by a cache flush and data is guaranteed to be on
194 * non-volatile media on completion.
195 *
196 */
> 197 #define RW_MASK REQ_OP_WRITE
198 #define RWA_MASK REQ_RAHEAD
199
200 #define READ REQ_OP_READ
201 #define WRITE RW_MASK
202 #define READA RWA_MASK
203
204 #define READ_SYNC REQ_SYNC
205 #define WRITE_SYNC (REQ_SYNC | REQ_NOIDLE)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 23301 bytes --]
[-- Attachment #3: Type: text/plain, Size: 121 bytes --]
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).