When a non-directory object is accessed without a trailing slash, then
path resolution returns the object itself as usual.
If a non-directory object is accessed with a trailing slash, then the
filesystem may opt to let the file be accessed as a directory. In
this case something (as
Others might suggest accessing streams, resource forks or extended
attributes through such an interface. However this patch only deals
with the non-directory case, so directories would be excluded from
that interface.
here's a possibly stupid question. What about symlinks to dirs?
On Wed, May 23, 2007 at 08:36:04AM +0200, Miklos Szeredi wrote:
Interesting... How do you deal with mount propagation and things like
mount --move?
Moving (or doing other mount operations on) an ancestor shouldn't be a
problem. Moving this mount itself is not allowed, and neither is
Interesting... How do you deal with mount propagation and things like
mount --move?
Moving (or doing other mount operations on) an ancestor shouldn't be a
problem. Moving this mount itself is not allowed, and neither is
doing bind or pivot_root. Maybe bind could be allowed...
On Wed, May 23, 2007 at 09:19:17AM +0200, Miklos Szeredi wrote:
Eh... Arbitrary limitations are fun, aren't they?
But these mounts _are_ special. There is really no point in moving or
pivoting them.
pivoting - probably true, moving... why not?
What about MNT_SLAVE stuff being set up
Eh... Arbitrary limitations are fun, aren't they?
But these mounts _are_ special. There is really no point in moving or
pivoting them.
pivoting - probably true, moving... why not?
I don't see any use for that. But indeed, it should not be too hard
to do.
What about MNT_SLAVE
On 5/23/07, Miklos Szeredi [EMAIL PROTECTED] wrote:
So your question is, which mount takes priority on the lookup? It
probably should be the propagated real mount, rather than the
dir-on-file one, shouldn't it?
Maybe this might belong into __link_path_walk() similar to the
handling of
On 5/23/07, Miklos Szeredi [EMAIL PROTECTED] wrote:
As for unlink... How do you deal with having that thing
mounted, mounting something _under_ it (so that vfsmount would be kept
busy) and then unlinking that sucker?
Yeah, that's a good point. Current patch doesn't deal with that.
As for unlink... How do you deal with having that thing
mounted, mounting something _under_ it (so that vfsmount would be kept
busy) and then unlinking that sucker?
Yeah, that's a good point. Current patch doesn't deal with that.
Simplest solution could be to disallow submounting
On Tue, May 22, 2007 at 08:48:49PM +0200, Miklos Szeredi wrote:
*/
-static int __follow_mount(struct path *path)
+static int __follow_mount(struct path *path, bool enter)
{
int res = 0;
while (d_mountpoint(path-dentry)) {
- struct vfsmount *mounted =
On Wed, May 23, 2007 at 11:03:08AM +0200, Miklos Szeredi wrote:
I still don't get it where the superblock comes in. The locking is
interesting in there, yes. And I haven't completely convinced
myself it's right, let alone something that won't easily be screwed up
in the future. So there's
+ * This is called if the object has no -lookup() defined, yet the
+ * path contains a slash after the object name.
+ *
+ * If the filesystem defines an -enter() method, this will be called,
+ * and the filesystem shall fill the supplied struct path or return an
+ * error.
+ *
+ *
On Wed, May 23, 2007 at 11:03:08AM +0200, Miklos Szeredi wrote:
I still don't get it where the superblock comes in. The locking is
interesting in there, yes. And I haven't completely convinced
myself it's right, let alone something that won't easily be screwed up
in the future. So
On Wed, May 23, 2007 at 12:09:19PM +0200, Miklos Szeredi wrote:
Right. After locking vfsmount_lock, mount_dironfile() should recheck
if there was a race and bail out.
Owww... Not pretty, that...
I don't think the filesystem ought to try _creating_ a vfsmount. I
imagine, that the fs has
On Tue, May 22, 2007 at 08:35:17AM -0400, Shaya Potter wrote:
Bharata B Rao wrote:
In case of regular files, when we copyup a file, we are actually preventing
any writes to the lower layers (which we have designated as read only).
Applying the same logic to devices, what do we achieve by
When the real superblock is created. It could even be the _same_
super block as the real one. There'd be just the problem of anchoring
the dir-on-file dentries somewhere...
Or with fuse the dir-on-file mount can just come from any mounted
filesystem, again possibly the same one as the
On May 22 2007 20:48, Miklos Szeredi wrote:
Why do we want this?
That depends on who you ask. My answer is this:
'foo.tar.gz/foo/bar' or
'foo.tar.gz/contents/foo/bar'
or something similar.
Stole reiser4 an idea.
These semantics are quite fragile. Until now, chdir is
On Wed, May 23, 2007 at 12:39:25PM +0100, Al Viro wrote:
Then I do not understand what this mechanism could be used for, other
than an odd way to twist POSIX behaviour and see how much of the userland
would survive that. Certainly not useful for your look into tarball
as a tree, unless you
On Wed, 2007-05-23 at 08:36 +0100, Al Viro wrote:
On Wed, May 23, 2007 at 09:19:17AM +0200, Miklos Szeredi wrote:
Eh... Arbitrary limitations are fun, aren't they?
But these mounts _are_ special. There is really no point in moving or
pivoting them.
pivoting - probably true,
On Wed, May 23, 2007 at 08:34:42AM -0400, Trond Myklebust wrote:
On Wed, 2007-05-23 at 08:36 +0100, Al Viro wrote:
On Wed, May 23, 2007 at 09:19:17AM +0200, Miklos Szeredi wrote:
Eh... Arbitrary limitations are fun, aren't they?
But these mounts _are_ special. There is really no
On Wed, May 23, 2007 at 12:39:25PM +0100, Al Viro wrote:
Then I do not understand what this mechanism could be used for, other
than an odd way to twist POSIX behaviour and see how much of the userland
would survive that. Certainly not useful for your look into tarball
as a tree, unless
On Sun, 20 May 2007 21:30:52 +0400, Evgeniy Polyakov wrote:
In that case segment size must be more than 32 bits, or below
transformation will not be correct?
Must it? If segment size is just 20bit then the filesystem may only be
52bit. Or 51bit when using signed values.
segsize is long,
Quoting Paul Dickson ([EMAIL PROTECTED]):
On Mon, 14 May 2007 13:23:06 -0700, Badari Pulavarty wrote:
+ while (fs) {
+ locked = union_trylock(fs-root);
+ if (!locked)
+ goto loop1;
+ locked = union_trylock(fs-altroot);
+ if
the FUSE vfs server with only minor
problems)
* probably tons of others I don't know
The project tarball is at:
http://veverka.sh.cvut.cz/~sykora/prj/rheavfs-20070523-1239.tar.gz
The kernel patch is in the tarball and for your viewing pleasure
I've attached it to this email.
The patch
On Wed, May 23, 2007 at 03:01:38PM +0200, Miklos Szeredi wrote:
Someone might think of a way to make those work with directories.
Invisible directory entries, anyone? /me ducks
Not unless you manage to get working union-mount [*NOT* unionfs]
* invalidation on unlink is still an open
On Wed, May 23, 2007 at 03:23:54PM +0200, Ph. Marek wrote:
How about some special node in eg. /proc (or a new filesystem)?
Eg.
/fileAsDir/etc/passwd/owner ...
would work for all *files*. For directories we do not know whether we're
still
climbing the hierarchy or would like to see
* invalidation on unlink is still an open problem.
* locking in final mntput() doesn't look nice; we probably need
a new refcounting scheme for vfsmounts to make that work. I have a
variant
that might work here (and make life much easier for expiry logics in
On Wed, May 23, 2007 at 04:32:37PM +0200, Miklos Szeredi wrote:
Umm... It is related to detached subtrees, but I'm not sure if it is what
you are thinking about.
I was thinking of a similar one by Mike Waychison. It had the problem
of requiring a spinlock for mntget/mntput. It was also
On Wed, May 23, 2007 at 02:58:41PM +0200, Jörn Engel ([EMAIL PROTECTED]) wrote:
On Sun, 20 May 2007 21:30:52 +0400, Evgeniy Polyakov wrote:
In that case segment size must be more than 32 bits, or below
transformation will not be correct?
Must it? If segment size is just 20bit then the
On Wed, 23 May 2007 19:07:32 +0400, Evgeniy Polyakov wrote:
On Wed, May 23, 2007 at 02:58:41PM +0200, Jörn Engel ([EMAIL PROTECTED])
wrote:
On Sun, 20 May 2007 21:30:52 +0400, Evgeniy Polyakov wrote:
And what if it is 33 bits? Or it is not allowed?
Not allowed. Both number and size of
How will this work with copy_tree() and namespace duplication, which
currently walk the tree with only namespace_sem held?
Easy - grab namespace_sem, grab vfsmount_lock, walk the subtree and bump
mnt_busy on everything (by 1 + number of non-busy children). Then drop
vfsmount_lock and do
On Wed, May 23, 2007 at 05:25:49PM +0200, Miklos Szeredi wrote:
How will this work with copy_tree() and namespace duplication, which
currently walk the tree with only namespace_sem held?
Easy - grab namespace_sem, grab vfsmount_lock, walk the subtree and bump
mnt_busy on everything
On Wed, May 23, 2007 at 05:14:04PM +0200, Jörn Engel ([EMAIL PROTECTED]) wrote:
I'm just a German. Forgive me if I drink lesser beverages.
You should definitely change that.
Change being German? Not a bad idea, actually.
You cook up really tasty shnaps, in small quantities it is good
I hope to get some breathing space next week, then I'll get back to
VFS work.
Great.
I'd rather do that one myself,
Sure, don't want to rob you of any fun stuff ;)
Miklos
-
To unsubscribe from this list: send the line unsubscribe linux-fsdevel in
the body of a message to [EMAIL PROTECTED]
Hello,
NCPFS has an undesirable bug (IMHO) where any character above charcode
127 will prevent the directory listing from showing.
Could somebody either work out how to fix it, or better still, fix it
and commit?
Thank you in advance,
Chris
smime.p7s
Description: S/MIME Cryptographic
This patch is only experimental, just have a try whether the
subdirectory inode reservation idea works. Now the answer is it works,
and I am working on an improved version for this patch.
The basic idea of subdirecctory inode reservation is to avoid
unnecessary redundant meta data writing and
The patch is generated based on 2.6.20-ext4-2 branch. you can find the
benchmark from other email.
DO NOT waste time on reading the patch :-) I post this patch here is to
show that I really spent time on it and the patch can work (even not
well).
diff --git a/Makefile b/Makefile
index
This patch only makes mke2fs support on-disk layout for inode
reservation. Just for experiment. e2fsck and other utils can not work
with magic inode yet.
diff -u -r
e2fsprogs-1.39-tyt1/debugfs/debugfs.c ../e2fsprogs/debugfs/debugfs.c
--- e2fsprogs-1.39-tyt1/debugfs/debugfs.c 2006-10-07
Current patch avoids inodes from different directories mixed together in
the inode table. Therefore the benchmakr emulate a situation that mixes
inodes of different sub-directories together. and record the time on
removing them all.
In the first part, reserving 16 inodes for each new created
From the benchmark and the experimental inores patch on ext4, it can be
found that inode reservation on ext4 is a good idea to be tried.
One of the original idea of inode reservation is NOT modifying on-disk
format. Current magic inode can make it, but use a magic inodes list to
link each
On Thursday 12 April 2007 12:12, Al Viro wrote:
On Thu, Apr 12, 2007 at 02:08:10AM -0700, [EMAIL PROTECTED] wrote:
This is needed for computing pathnames in the AppArmor LSM.
Which is an argument against said LSM in current form.
The fundamental model of AppArmor is to perform access checks
The following patches consist of mostly cleanups of the Unionfs code, as
well as fixes for several harder to hit bugs (resource/memory leaks).
As before, there is a git repo at:
git://git.kernel.org/pub/scm/linux/kernel/git/jsipek/unionfs.git
From: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
Documentation/filesystems/unionfs/usage.txt |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git
From: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/commonfops.c |7 ---
fs/unionfs/copyup.c |2 +-
fs/unionfs/dentry.c |8 +---
fs/unionfs/inode.c | 15
From: Erez Zadok [EMAIL PROTECTED]
The old logic was broken in one place, which another place tried to fix
incorrectly. Also added detailed comments to explain the new/correct logic.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
From: Erez Zadok [EMAIL PROTECTED]
Added detailed comment and updated documentation to explain why overlapping
branches are disallowed, and better explain the cache coherency issues.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
From: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/stack.c | 11 +++
fs/unionfs/sioq.c|5 -
fs/unionfs/sioq.h| 13 +
include/linux/fs_stack.h |
Change the branch management code to use krealloc instead of playing tricks
with kmalloc/memcpy/kfree.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/super.c | 56 +---
1 files changed, 14 insertions(+), 42 deletions(-)
diff
From: Yiannis Pericleous [EMAIL PROTECTED]
Signed-off-by: Yiannis Pericleous [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/super.c |6 --
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/unionfs/super.c b/fs/unionfs/super.c
index
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/union.h | 34 +++---
1 files changed, 7 insertions(+), 27 deletions(-)
diff --git a/fs/unionfs/union.h b/fs/unionfs/union.h
index 5376b76..335d579 100644
--- a/fs/unionfs/union.h
+++
From: Erez Zadok [EMAIL PROTECTED]
Change instances of foo * var to foo *var for consistency.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/copyup.c |6 +++---
fs/unionfs/file.c | 14 +++---
fs/unionfs/inode.c |
From: Erez Zadok [EMAIL PROTECTED]
Unionfs requires the leftmost branch to be writeable for copyup to work
properly and simply. If, through branch-management commands (add, delete,
or mode change), the leftmost branch will becomes readonly, then return an
error (and tell the user to use
The __unionfs_write helper function was used only by unionfs_write, and
there is really no reason why they should not be combined.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/file.c | 30 ++
1 files changed, 10 insertions(+), 20 deletions(-)
From: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/sioq.h |1 +
fs/unionfs/union.h | 50 +-
2 files changed, 26 insertions(+), 25 deletions(-)
Moved unionfs_query_file closer to its one user in commonfops.c.
Additionally, it can now become static, and branchman.c can be removed as it
is empty.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/Makefile |4 +-
fs/unionfs/branchman.c | 60
From: Erez Zadok [EMAIL PROTECTED]
To avoid confusion with the VFS function do_rename, and to help ctags,
rename our utility (static) function do_rename to __unionfs_rename.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/rename.c |
From: Erez Zadok [EMAIL PROTECTED]
To avoid potential confusion with a VFS function, rename our version of
double_lock_dentry to unionfs_double_lock_dentry.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/inode.c |2 +-
From: Erez Zadok [EMAIL PROTECTED]
Includes:
- consistent style for multi-line comments
- spell-check of all strings and comments
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/stack.c |6 --
From: Erez Zadok [EMAIL PROTECTED]
Audited entire code for documentation. Added comments at top of functions
where it felt necessary (i.e., function's name and size don't make it clear
what it may be doing precisely). Reformatted some long comments. Fixed a
few comment typos and spelling
krealloc already checks if the new size is greater than the old size.
Therefore, we can call realloc unconditionally - making the code simpler and
cleaner.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/lookup.c | 26 --
1 files changed, 8
Original-patch-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/copyup.c | 24 ++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/fs/unionfs/copyup.c b/fs/unionfs/copyup.c
index 0975b6e..a80ece6 100644
---
From: Erez Zadok [EMAIL PROTECTED]
Removed old workaround code that was needed to get mmap working, is no
longer needed with recent kernels.
Signed-off-by: Erez Zadok [EMAIL PROTECTED]
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/unionfs/super.c | 20
1
I've hit a NULL ptr deref on desc-pg_error below, triggered when mounting a
stackable file system on top of nfsv3:
// from file: nfs/pagelist.c
int nfs_pageio_add_request(struct nfs_pageio_descriptor *desc,
struct nfs_page *req)
{
while
On Wed, 23 May 2007, Andreas Gruenbacher wrote:
This is backwards from what AppArmor does. The policy defines which paths may
be accessed; all paths not explicitly listed are denied. If files are mounted
at multiple locations, then the policy may allow access to some locations but
not to
The only change since V3, is the fix for a vfsmount reference leak in the
nfsctl patch (pointed out by hch).
Stackable file systems, among others, frequently need to lookup paths or
path components starting from an arbitrary point in the namespace
(identified by a dentry and a vfsmount).
use vfs_path_lookup instead of open-coding the necessary functionality.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
Acked-by: Trond Myklebust [EMAIL PROTECTED]
---
net/sunrpc/rpc_pipe.c | 16 +++-
1 files changed, 7 insertions(+), 9 deletions(-)
diff --git
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/namei.c|4 +++-
include/linux/namei.h |1 -
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/fs/namei.c b/fs/namei.c
index a30efbc..50285a1 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -107,6 +107,8 @@
*
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/namei.c|3 +--
include/linux/namei.h |1 -
2 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/fs/namei.c b/fs/namei.c
index 50285a1..15f45ac 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1024,7 +1024,7 @@
use vfs_path_lookup instead of open-coding the necessary functionality.
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
Acked-by: NeilBrown [EMAIL PROTECTED]
---
fs/nfsctl.c | 16 ++--
1 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/fs/nfsctl.c b/fs/nfsctl.c
Signed-off-by: Josef 'Jeff' Sipek [EMAIL PROTECTED]
---
fs/namei.c| 32
include/linux/namei.h |2 ++
2 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/fs/namei.c b/fs/namei.c
index 580162b..a30efbc 100644
--- a/fs/namei.c
+++
70 matches
Mail list logo