| From | Subject | Date |
|---|---|---|
| David Newall | Re: [RFC PATCH 0/5] Shadow directories
If I understand your problem, you wish to treat an archive file as if it
was a directory. Thus, in the ideal situation, you could do the following:
cat hello.zip/hello.c
gcc hello.zip/hello.c -o hello
etc..
Rather than complicate matters with a second tree, use FUSE with an
explicit directory. For example, ~/expand could be your shadow, thus to
compile hello.c from ~/hello.zip:
gcc ~/expand/hello.zip^/hello.c -o hello
I think no kernel change would be required.
I'm not kee...
| Oct 18, 4:37 pm 2007 |
| Al Viro | Re: [RFC PATCH 0/5] Shadow directories
Learn to read. Linux has never allowed that. Most of the Unix systems
do not allow that. Original _did_ allow that, but at the cost of very
easily triggered fs corruption (and it didn't have things like rename(2) -
it _did_ have userland implementation, of course, in suid-root mv(1),
but that sucker had been extremely racy and could be easily used to
screw filesystem to hell and back; adding rename(2) to the set of primitives
combined with multiple links to directories leads to very nasty issues ...
| Oct 18, 4:47 pm 2007 |
| Jan Engelhardt | Re: [RFC PATCH 0/5] Shadow directories
But hell will break lose if you allow hardlinking directories.
mkdir /tmp/a
ln /tmp/a /tmp/a/b
And you would not be able to rmdir /tmp/a/b because the directory is
not empty (it contains "b" [full path: /tmp/a/b/b]).
-
| Oct 18, 4:09 pm 2007 |
| Evgeniy Polyakov | [2/3] Distributed storage. Network state machine.
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
diff --git a/drivers/block/dst/kst.c b/drivers/block/dst/kst.c
new file mode 100644
index 0000000..b0608c9
--- /dev/null
+++ b/drivers/block/dst/kst.c
@@ -0,0 +1,1606 @@
+/*
+ * 2007+ Copyright (c) Evgeniy Polyakov <johnpol@2ka.mipt.ru>
+ * All rights reserved.
+ *
+ * This program 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 Softwa...
| Oct 18, 3:17 pm 2007 |
| Evgeniy Polyakov | [3/3] Distributed storage. Documentation and algorithms.
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
diff --git a/Documentation/dst/algorithms.txt b/Documentation/dst/algorithms.txt
new file mode 100644
index 0000000..1437a6a
--- /dev/null
+++ b/Documentation/dst/algorithms.txt
@@ -0,0 +1,115 @@
+Each storage by itself is just a set of contiguous logical blocks, with
+allowed number of operations. Nodes, each of which has own start and size,
+are placed into storage by appropriate algorithm, which remaps
+logical sector number into rea...
| Oct 18, 3:18 pm 2007 |
| Evgeniy Polyakov | [1/3] Distributed storage. Core files.
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
diff --git a/drivers/block/Makefile b/drivers/block/Makefile
index dd88e33..fcf042d 100644
--- a/drivers/block/Makefile
+++ b/drivers/block/Makefile
@@ -29,3 +29,4 @@ obj-$(CONFIG_VIODASD) += viodasd.o
obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
obj-$(CONFIG_BLK_DEV_UB) += ub.o
+obj-$(CONFIG_DST) += dst/
diff --git a/drivers/block/dst/Kconfig b/drivers/block/dst/Kconfig
new file mode 100644
index 0000000..5bb9de8
--- /dev/null
+++ b/dr...
| Oct 18, 3:17 pm 2007 |
| Evgeniy Polyakov | [0/3] Distributed storage. Mirror algo extension for automat...
Hi.
I'm pleased to announce sixth release of the distributed storage
subsystem, which allows to form a storage on top of remote and local
nodes, which in turn can be exported to another storage as a node to
form tree-like storages.
This release includes mirroring algorithm extension, which allows to
store 'age' of the given node on the underlying media.
In this case, if failed node gets new media, which does not contain
correct 'age' (unique id assigned to the whole storage during
initializ...
| Oct 18, 3:17 pm 2007 |
| Jaroslav Sykora | [RFC PATCH 0/5] Shadow directories
Hello,
Let's say we have an archive file "hello.zip" with a hello world program source
code. We want to do this:
cat hello.zip^/hello.c
gcc hello.zip^/hello.c -o hello
etc..
The '^' is an escape character and it tells the computer to treat the file as a directory.
[Note: We can't do "cat hello.zip/hello.c" because of http://lwn.net/Articles/100148/ ]
The kernel patch implements only a redirection of the request to another directory
("shadow directory") where a FUSE server must be mounted. Th...
| Oct 18, 11:21 am 2007 |
| Jan Engelhardt | Re: [RFC PATCH 0/5] Shadow directories
Too bad, since ^ is a valid character in a *file*name. Everything is, with
the exception of '\0' and '/'. At the end of the day, there are no control
characters you could use.
But what you could do is: write a FUSE fs that mirrors the lower content
(lofs/fuseloop/however it was named) and expands .zip files as
directories are readdir'ed or the zip files stat'ed. That saves us
from cluttering up the Linux VFS with such stuff.
-
| Oct 18, 12:05 pm 2007 |
| Jaroslav Sykora | Re: [RFC PATCH 0/5] Shadow directories
Yes, that's exactly what RheaVFS and AVFS do. Except that they both use an escape
character because:
1. without it some programs may break [ http://lwn.net/Articles/100148/ ]
2. it's very useful to pass additional parameters after the escape char to the server.
We can start VFS servers (mentioned above) and chroot the whole user session into
the mount directory of the server. It works but it's very slow, practically unusable.
So both servers need some kind of VFS redirector. In the past there were...
| Oct 18, 1:07 pm 2007 |
| Jan Engelhardt | Re: [RFC PATCH 0/5] Shadow directories
Sounds like a program bug, since NTFS-3G is proof of concept that FUSE
-
| Oct 18, 1:10 pm 2007 |
| Jaroslav Sykora | Re: [RFC PATCH 0/5] Shadow directories
Good point, I'll look onto it.
A minor implementation problem with chrooted environment is that the FUSE VFS server
must be run with root privileges to allow setuid programs on the mounted filesystems.
But it's certainly doable.
--
"Elves and Dragons!" I says to him. "Cabbages and potatoes are better
for you and me." -- J. R. R. Tolkien
-
| Oct 18, 4:10 pm 2007 |
| Jan Engelhardt | Re: [RFC PATCH 0/5] Shadow directories
You would not want user-supplied filesystems to carry SUID bits...
-
| Oct 18, 4:12 pm 2007 |
| David Newall | Re: [RFC PATCH 0/5] Shadow directories
Wouldn't you do this as a user space filesystem?
-
| Oct 18, 12:30 pm 2007 |
| David Newall | Re: [RFC PATCH 0/5] Shadow directories
Which is what you were saying.
*SMACK* I so stupid.
-
| Oct 18, 12:33 pm 2007 |
| David Newall | Re: [RFC PATCH 0/5] Shadow directories
On third thoughts, what's the reason for this?
-
| Oct 18, 12:53 pm 2007 |
| Jaroslav Sykora | [RFC PATCH 5/5] Shadow directories: documentation
Documentation of the shadow directories.
Signed-off-by: Jaroslav Sykora <jaroslav.sykora@gmail.com>
Documentation/filesystems/shadow-directories.txt | 177 +++++++++++++
1 file changed, 177 insertions(+)
--- /dev/null 2007-10-18 09:34:42.624413454 +0200
+++ new/Documentation/filesystems/shadow-directories.txt 2007-10-18 17:03:06.000000000 +0200
@@ -0,0 +1,177 @@
+Shadow directories
+==================
+
+The Goal
+--------
+
+Let's say we have an archive file "hello.zip" with a he...
| Oct 18, 11:28 am 2007 |
| Jaroslav Sykora | [RFC PATCH 4/5] Shadow directories: procfs
Procfs interface: /proc/<pid>/status, /proc/<pid>/{root-shdw, cwd-shdw}.
Signed-off-by: Jaroslav Sykora <jaroslav.sykora@gmail.com>
fs/proc/array.c | 23 +++++++++++++++++++
fs/proc/base.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+)
--- orig/fs/proc/base.c 2007-10-07 19:00:20.000000000 +0200
+++ new/fs/proc/base.c 2007-10-07 13:39:08.000000000 +0200
@@ -171,6 +171,32 @@ static int proc_cwd_link(struct inode *i
return result;
...
| Oct 18, 11:26 am 2007 |
| Jaroslav Sykora | [RFC PATCH 3/5] Shadow directories: chdir, fchdir
sys_chdir and sys_fchdir changes.
Signed-off-by: Jaroslav Sykora <jaroslav.sykora@gmail.com>
fs/open.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 73 insertions(+), 6 deletions(-)
--- orig/fs/open.c 2007-10-07 19:00:19.000000000 +0200
+++ new/fs/open.c 2007-10-16 21:04:56.000000000 +0200
@@ -476,13 +476,51 @@ asmlinkage long sys_access(const char __
return sys_faccessat(AT_FDCWD, filename, mode);
}
+static inline int read_fs_flags(void)
+{
+ int...
| Oct 18, 11:25 am 2007 |
| Jaroslav Sykora | [RFC PATCH 2/5] Shadow directories: core
Implements two stage lookup with escape character filtering
and system calls for i386.
Changes lookup path, namely do_path_lookup. This function is split
into path_lookup_norm(), which performs standard name lookup,
and path_lookup_shdw(), which performs name lookup in an associated shadow directory.
Signed-off-by: Jaroslav Sykora <jaroslav.sykora@gmail.com>
arch/i386/kernel/syscall_table.S | 6
fs/exec.c | 4
fs/file_table.c | 19
fs/na...
| Oct 18, 11:23 am 2007 |
| Jaroslav Sykora | [RFC PATCH 1/5] Shadow directories: headers
Header file changes for shadow directories.
Adds pointers to shadows dirs to the struct file and struct fs_struct.
Defines internal lookup flags and syscall flags.
Signed-off-by: Jaroslav Sykora <jaroslav.sykora@gmail.com>
include/linux/file.h | 2 ++
include/linux/fs.h | 18 ++++++++++++++++++
include/linux/fs_struct.h | 25 +++++++++++++++++++++++++
include/linux/namei.h | 16 ++++++++++++++++
4 files changed, 61 insertions(+)
--- orig/include/linux/fs.h 2007...
| Oct 18, 11:22 am 2007 |
| previous day | today | next day |
|---|---|---|
| October 17, 2007 | October 18, 2007 | October 19, 2007 |
| Andrew Morton | -mm merge plans for 2.6.23 |
| Greg Kroah-Hartman | [PATCH 025/196] paride: Convert from class_device to device for block/paride |
| Renato S. Yamane | Error -71 on device descriptor read/all |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
git: | |
| David Miller | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 31/37] dccp: Remove manual influence on NDP Count feature |
| Frans Pop | svc: failed to register lockdv1 RPC service (errno 97). |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
