Re: FS Unions

Alexander Viro (viro@math.psu.edu)
Tue, 15 Jun 1999 02:13:55 -0400 (EDT)


On Tue, 15 Jun 1999, Jan-Simon Pendry wrote:

> Alexander Viro wrote:
> >
> > [ good explanation of create/delete process ... ]
> >
> > > To create a fully-realized implementation, would there have
> > > to be modifications to commands or facilities to take into account
> > > or exploit the fs unions? If so, this might be a way for some others
> >
> > mount(8), umount(8) and fsck(8). Mount should be taught to deal
> > with the new flag, fsck should be taught to that whiteouts are valid
> > entries. Other than that... Some utility to find and remove whiteouts.
>
> just to summarise, the top level filesystem requires the following
> (additional) functionality:
... if it's not an r/o mount - so overlapping several ISOFS volumes is OK.

> 1. persistent representation of a whiteout node.

can be dealt with on ext2, ufs, minix, sysvfs and <hysterical
laughter here> FAT-derived filesystems (ATTR_VOL | <something other than
the mark used by VFAT> in attributes). Can be also done on hpfs and ntfs
(AFAICS - empty file with appropriate EAs).

> 2. persistently mark a directory non-transparent.

ext2, ufs. Probably FAT-derived sh*t too. Not sure whether we can
do it on s5fs and its relatives (including minix).

> 3. return list of whiteouts in a directory.
> 4. create a named whiteout.
> 5. remove a named whiteout.
Preferably 'atomically replace the whiteout with link' too.

> all apart from #1 must also be accessible via system call
> interfaces.

... which may be rather different from 4.4BSD ones - you don't
have dcache over there, so the set of problems differs. OTOH we might mark
dentry as whiteout.

> underlying filesystems require no modifications.
>
> user-level changes are:
>
> 1. change opendir et al. to deal with whiteouts.
> 2. change file-tree walker to deal with whiteouts.
> 3. add options to rm, ls and find to handle whiteouts.
> 4. teach fsck about specific storage implementation of whiteouts.
> 5. provide backup/recovery hooks.
>
> note that the bsd implementation provides backup/recovery
> using dump/restore. dump/restore correctly handle whiteout
> nodes. tar, pax etc. have no knowledge of whiteouts.
>
> jan-simon.

Just to clarify:

al@bird:~$ head /usr/src/FreeBSD-3.0R/sys/miscfs/union/union_vnops.c
/*
* Copyright (c) 1992, 1993, 1994, 1995 Jan-Simon Pendry.
* Copyright (c) 1992, 1993, 1994, 1995
* The Regents of the University of California. All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Jan-Simon Pendry.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
al#bird:~$

;-)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/