safely remove USB hard drive

Mikkel L. Ellertson mikkel at infinity-ltd.com
Thu Apr 24 15:28:28 UTC 2008


Patrick O'Callaghan wrote:
> 
> You've stopped using the filesystem, you sync to make sure everything's
> hunky dory, then you unmount. If you can't be sure that activity has
> stopped (i.e. there are no open files or current directories on the fs)
> you have to hope that unmount will fail and let you know, but there is a
> potential race condition if you're not careful. The only way to avoid
> the race would be if 'unmount' included a 'sync' within the kernel, but
> the docs don't say that. I imagine the reason it's that way is that
> unmount can take an indeterminate amount of time, especially for
> remotely mounted filesystems. Just speculating of course.
> 
> poc
> 
By design, the default action of umount is to fail if there are any 
open files on the filesystem. I am not sure what potential race 
condition you are talking about - I would think that proper unmount 
code would first make sure the file system in not in use, then block 
opening of files on the file system, write any dirty buffers, and 
then unmount the file system.

 From the umount man page:

Note  that  a file system cannot be unmounted when it is ‘busy’ - 
for example, when there are open files on it, or when some process 
has its working directory there, or when a swap file on it is in 
use. The offending process could even be umount itself - it opens 
libc, and libc in its turn may open for example locale files.  A 
lazy unmount avoids this problem.

Mikkel
-- 

   Do not meddle in the affairs of dragons,
for thou art crunchy and taste good with Ketchup!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/fedora-list/attachments/20080424/ce190233/attachment-0001.sig>


More information about the fedora-list mailing list