From: Michael Tokarev <mjt@tls.msk.ru>
To: Pavel Machek <pavel@suse.cz>
Cc: Kay Sievers <kay.sievers@vrfy.org>,
Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: data corruption: revalidating a (removable) hdd/flash on re-insert
Date: Wed, 05 Nov 2008 11:04:58 +0300 [thread overview]
Message-ID: <491153AA.3010105@msgid.tls.msk.ru> (raw)
In-Reply-To: <20081104212811.GC8349@elf.ucw.cz>
Pavel Machek wrote:
> On Wed 2008-11-05 00:22:51, Michael Tokarev wrote:
>> Pavel Machek wrote:
[]
>>> So can we simply claim 'media changed' on last close/unmount? Sure,
>>> sometimes media was not changed, but that only hurts performance, not
>>> correctness... ?
>> Well, that's what my tiny proggy, which I used here to work around the
>> problem, does. It constantly opens/closes the /dev/sdFOO, every 0.5s
>> currently (I don't think I will be able to replace a media faster than
>> half a second :), in order to catch REMOVALs of media -- because when
>> the drive does not see the media anymore, it correctly reports that
>> the media has changed...
> Ok, so we you need to do is to put it into kernel and activate it
> via blacklist...?
I'm fine with my solution.. ;) Especially once Kay suggested to
look at /proc/mounts for notifications.
Original problem was that I didn't understand what happens, and
blamed kernel for "breaking" the working device (it looks like
it never worked in the first place, it was just that we never hit
the bug before). Once the problem become clear (thanks Kay!),
I wrote the proggy mentioned above - it's obviously a gross hack,
but it stops the corruption for me.
Generally the solution can be one of the 3:
a) leave it as it is now, since it had never been bought up
before and hence does not affect many people. And because
even if it was, it becomes less and less of a problem with
bad drives going away slowly...
b) to use a mechanism like blacklist in kernel to force
invalidation on CLOSE automatically for such drives (not
when it really necessary as my program detects - on REMOVAL).
Less efficient than my solution, but much easier to deal
with in kernel.
c) I will use my variant for my problem.. while finding a
replacement for the bad hardware.
So no, I'm not asking to put that proggy into the kernel.. ;)
For kernelspace solution that'd be a much simple way. If at
all.
So to summary: if it is EASY (read: trivial) to do such blacklist
in kernel space, I'd do it right away, because potentially it
is still possible to see similar corruptions elsewhere. If not,
just forget the case as "solved for the reporter" ;)
Thanks!
/mjt
next prev parent reply other threads:[~2008-11-05 8:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-31 15:38 data corruption: revalidating a (removable) hdd/flash on re-insert Michael Tokarev
2008-10-31 15:59 ` Lennart Sorensen
2008-10-31 16:10 ` Michael Tokarev
2008-10-31 18:28 ` Lennart Sorensen
2008-10-31 16:10 ` Kay Sievers
2008-10-31 17:39 ` Michael Tokarev
2008-10-31 18:49 ` Kay Sievers
2008-11-04 19:57 ` Pavel Machek
2008-11-04 20:13 ` Kay Sievers
2008-11-04 20:20 ` Pavel Machek
2008-11-04 21:22 ` Michael Tokarev
2008-11-04 21:28 ` Pavel Machek
2008-11-05 8:04 ` Michael Tokarev [this message]
2008-11-05 0:29 ` Kay Sievers
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=491153AA.3010105@msgid.tls.msk.ru \
--to=mjt@tls.msk.ru \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@suse.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox