| From | Subject | Date |
|---|---|---|
| David Howells | [PATCH 21/37] NFS: Add comment banners to some NFS funct ...
Add comment banners to some NFS functions so that they can be modified by the
NFS fscache patches for further information.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/file.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index ef57a5a..26a073b 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -354,6 +354,13 @@ static int nfs_write_end(struct file *file, struct address_space *mapping,
...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 13/37] FS-Cache: Provide an add_wait_queue_tail() ...
Provide an add_wait_queue_tail() function to add a waiter to the back of a
wait queue instead of the front.
Signed-off-by: David Howells <dhowells@redhat.com>
---
include/linux/pagemap.h | 7 +++++--
include/linux/wait.h | 1 +
kernel/wait.c | 18 ++++++++++++++++++
mm/filemap.c | 2 +-
4 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index c5df3ae..ad9484f 100644
--- ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 30/37] NFS: Add some new I/O event counters for F ...
Add some new NFS I/O event counters for FS-Cache events. They have to be
added as byte counters because I may need to be able to increase the numbers
by more than 1 at a time.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/iostat.h | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/iostat.h b/fs/nfs/iostat.h
index 6350ecb..0e3b170 100644
--- a/fs/nfs/iostat.h
+++ b/fs/nfs/iostat.h
@@ -60,6 +60,13 @@ enum nfs_stat_bytecounters {
...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 33/37] NFS: nfs_readpage_async() needs to be acce ...
nfs_readpage_async() needs to be non-static so that it can be used as a
fallback for the local on-disk caching should an EIO crop up when reading the
cache.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/read.c | 4 ++--
include/linux/nfs_fs.h | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index 3d7d963..725a5a2 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -114,8 +114,8 @@ static void ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 07/37] Security: De-embed task security record fr ...
Remove the temporarily embedded task security record from task_struct. Instead
it is made to dangle from the task_struct::sec and task_struct::act_as pointers
with references counted for each.
do_coredump() is made to create a copy of the security record, modify it and
then use that to override the main one for a task. sys_faccessat() is made to
do the same.
The process and session keyrings are moved from signal_struct into a new
thread_group_security struct. This is then refcounted, with ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 27/37] NFS: Define and create inode-level cache o ...
Define and create inode-level cache data storage objects (as managed by
nfs_inode structs).
Each inode-level object is created in a superblock-level index object and is
itself a data storage object into which pages from the inode are stored.
The inode object key is the NFS file handle for the inode.
The inode object is given coherency data to carry in the auxiliary data
permitted by the cache. This is a sequence made up of:
(1) i_mtime from the NFS inode.
(2) i_ctime from the NFS ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 02/37] KEYS: Check starting keyring as part of se ...
Check the starting keyring as part of the search to (a) see if that is what
we're searching for, and (b) to check it is still valid for searching.
The scenario: User in process A does things that cause things to be
created in its process session keyring. The user then does an su to
another user and starts a new process, B. The two processes now
share the same process session keyring.
Process B does an NFS access which results in an upcall to gssd.
When gssd attempts to instantiate the ...
| Feb 28, 5:43 pm 2008 |
| David Howells | [PATCH 23/37] NFS: Permit local filesystem caching to be ...
Permit local filesystem caching to be enabled for NFS in the kernel
configuration.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/Kconfig | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/fs/Kconfig b/fs/Kconfig
index c42ec50..fa8e978 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -1644,6 +1644,14 @@ config NFS_V4
If unsure, say N.
+config NFS_FSCACHE
+ bool "Provide NFS client caching support (EXPERIMENTAL)"
+ depends on ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 04/37] KEYS: Add keyctl function to get a securit ...
Add a keyctl() function to get the security label of a key.
The following is added to Documentation/keys.txt:
(*) Get the LSM security context attached to a key.
long keyctl(KEYCTL_GET_SECURITY, key_serial_t key, char *buffer,
size_t buflen)
This function returns a string that represents the LSM security context
attached to a key in the buffer provided.
Unless there's an error, it always returns the amount of data it could
produce, even if that's too big for ...
| Feb 28, 5:43 pm 2008 |
| David Howells | [PATCH 18/37] CacheFiles: Permit the page lock state to ...
Add a function to install a monitor on the page lock waitqueue for a particular
page, thus allowing the page being unlocked to be detected.
This is used by CacheFiles to detect read completion on a page in the backing
filesystem so that it can then copy the data to the waiting netfs page.
Signed-off-by: David Howells <dhowells@redhat.com>
---
include/linux/pagemap.h | 5 +++++
mm/filemap.c | 18 ++++++++++++++++++
2 files changed, 23 insertions(+), 0 deletions(-)
diff ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 03/37] KEYS: Allow the callout data to be passed ...
Allow the callout data to be passed as a blob rather than a string for internal
kernel services that call any request_key_*() interface other than
request_key(). request_key() itself still takes a NUL-terminated string.
The functions that change are:
request_key_with_auxdata()
request_key_async()
request_key_async_with_auxdata()
Signed-off-by: David Howells <dhowells@redhat.com>
---
Documentation/keys-request-key.txt | 11 +++++---
Documentation/keys.txt | 14 ...
| Feb 28, 5:43 pm 2008 |
| David Howells | [PATCH 29/37] NFS: Invalidate FsCache page flags when ca ...
Invalidate the FsCache page flags on the pages belonging to an inode when the
cache backing that NFS inode is removed.
This allows a live cache to be withdrawn.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/fscache-index.c | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/fscache-index.c b/fs/nfs/fscache-index.c
index c3c63fa..eec8e7e 100644
--- a/fs/nfs/fscache-index.c
+++ ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 36/37] NFS: Display local caching state [ver #34]
Display the local caching state in /proc/fs/nfsfs/volumes.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/client.c | 7 ++++---
fs/nfs/fscache.h | 15 +++++++++++++++
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 51e9346..d67d52f 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1451,7 +1451,7 @@ static int nfs_volume_list_show(struct seq_file *m, void *v)
/* display header on line 1 */
if (v ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 26/37] NFS: Define and create superblock-level ob ...
Define and create superblock-level cache index objects (as managed by
nfs_server structs).
Each superblock object is created in a server level index object and is itself
an index into which inode-level objects are inserted.
Ideally there would be one superblock-level object per server, and the former
would be folded into the latter; however, since the "nosharecache" option
exists this isn't possible.
The superblock object key is a sequence consisting of:
(1) Certain superblock ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 16/37] CacheFiles: Be consistent about the use of ...
Change all the usages of file->f_mapping in ext3_*write_end() functions to use
the mapping argument directly. This has two consequences:
(*) Consistency. Without this patch sometimes one is used and sometimes the
other is.
(*) A NULL file pointer can be passed. This feature is then made use of by
the generic hook in the next patch, which is used by CacheFiles to write
pages to a file without setting up a file struct.
Signed-off-by: David Howells ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 32/37] NFS: Add read context retention for FS-Cac ...
Add read context retention so that FS-Cache can call back into NFS when a read
operation on the cache fails EIO rather than reading data. This permits NFS to
then fetch the data from the server instead using the appropriate security
context.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/fscache-index.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/fscache-index.c b/fs/nfs/fscache-index.c
index eec8e7e..af9f06b ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 25/37] NFS: Define and create server-level object ...
Define and create server-level cache index objects (as managed by nfs_client
structs).
Each server object is created in the NFS top-level index object and is itself
an index into which superblock-level objects are inserted.
Ideally there would be one superblock-level object per server, and the former
would be folded into the latter; however, since the "nosharecache" option
exists this isn't possible.
The server object key is a sequence consisting of:
(1) NFS version
(2) Server ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 09/37] Security: Allow kernel services to overrid ...
Allow kernel services to override LSM settings appropriate to the actions
performed by a task by duplicating a security record, modifying it and then
using task_struct::act_as to point to it when performing operations on behalf
of a task.
This is used, for example, by CacheFiles which has to transparently access the
cache on behalf of a process that thinks it is doing, say, NFS accesses with a
potentially inappropriate (with respect to accessing the cache) set of
security data.
This patch ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 17/37] CacheFiles: Add a hook to write a single p ...
Add an address space operation to write one single page of data to an inode at
a page-aligned location (thus permitting the implementation to be highly
optimised). The data source is a single page.
This is used by CacheFiles to store the contents of netfs pages into their
backing file pages.
Supply a generic implementation for this that uses the write_begin() and
write_end() address_space operations to bind a copy directly into the page
cache.
Hook the Ext2 and Ext3 operations to the ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 05/37] Security: Change current->fs[ug]id to curr ...
Change current->fs[ug]id to current_fs[ug]id() so that fsgid and fsuid can be
separated from the task_struct.
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: James Morris <jmorris@namei.org>
---
arch/ia64/kernel/perfmon.c | 4 ++--
arch/powerpc/platforms/cell/spufs/inode.c | 4 ++--
drivers/isdn/capi/capifs.c | 4 ++--
drivers/usb/core/inode.c | 4 ++--
fs/9p/fid.c | 2 +-
...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 00/37] Permit filesystem local caching [ver #34]
These patches add local caching for network filesystems such as NFS. To give a
really quick overview of the way the facility works:
+---------+
| |
| NFS |--+
| | |
+---------+ | +----------+
| | |
+---------+ +-->| |
| | | |
| AFS |----->| FS-Cache |
| | | |--+
+---------+ +-->| | |
| | | | +--------------+ ...
| Feb 28, 5:43 pm 2008 |
| David Howells | [PATCH 28/37] NFS: Use local disk inode cache [ver #34]
Bind data storage objects in the local cache to NFS inodes.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/fscache.c | 174 ++++++++++++++++++++++++++++++++++++++++++++++++
fs/nfs/fscache.h | 15 ++++
fs/nfs/inode.c | 39 +++++++++--
include/linux/nfs_fs.h | 11 +++
4 files changed, 233 insertions(+), 6 deletions(-)
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c
index cbd09f0..839a5ea 100644
--- a/fs/nfs/fscache.c
+++ b/fs/nfs/fscache.c
@@ ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 35/37] NFS: Store pages from an NFS inode into a ...
Store pages from an NFS inode into the cache data storage object associated
with that inode.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/fscache.c | 26 ++++++++++++++++++++++++++
fs/nfs/fscache.h | 16 ++++++++++++++++
fs/nfs/read.c | 5 +++++
3 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c
index 7551c3b..a02ba33 100644
--- a/fs/nfs/fscache.c
+++ b/fs/nfs/fscache.c
@@ -499,3 +499,29 @@ int ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 11/37] FS-Cache: Release page->private after fail ...
The attached patch causes read_cache_pages() to release page-private data on a
page for which add_to_page_cache() fails or the filler function fails. This
permits pages with caching references associated with them to be cleaned up.
The invalidatepage() address space op is called (indirectly) to do the honours.
Signed-off-by: David Howells <dhowells@redhat.com>
---
mm/readahead.c | 39 +++++++++++++++++++++++++++++++++++++--
1 files changed, 37 insertions(+), 2 deletions(-)
diff ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 15/37] CacheFiles: Add missing copy_page export f ...
This one-line patch fixes the missing export of copy_page introduced
by the cachefile patches. This patch is not yet upstream, but is required
for cachefile on ia64. It will be pushed upstream when cachefile goes
upstream.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
---
arch/ia64/kernel/ia64_ksyms.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/ia64/kernel/ia64_ksyms.c ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 22/37] NFS: Add FS-Cache option bit and debug bit ...
Add FS-Cache option bit to nfs_server struct. This is set to indicate local
on-disk caching is enabled for a particular superblock.
Also add debug bit for local caching operations.
Signed-off-by: David Howells <dhowells@redhat.com>
---
include/linux/nfs_fs.h | 1 +
include/linux/nfs_fs_sb.h | 2 ++
2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index a69ba80..14894c9 100644
--- a/include/linux/nfs_fs.h
+++ ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 12/37] FS-Cache: Recruit a couple of page flags f ...
Recruit a couple of page flags to aid in cache management. The following extra
flags are defined:
(1) PG_fscache (PG_private_2)
The marked page is backed by a local cache and is pinning resources in the
cache driver.
(2) PG_fscache_write (PG_owner_priv_2)
The marked page is being written to the local cache. The page may not be
modified whilst this is in progress.
If PG_fscache is set, then things that checked for PG_private will now also
check for that. This ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 10/37] Security: Make NFSD work with detached sec ...
Make NFSD work with detached security, using the patches that excise the
security information from task_struct to struct task_security as a base.
Each time NFSD wants a new security descriptor (to do NFS4 recovery or just to
do NFS operations), a task_security record is derived from NFSD's *objective*
security, modified and then applied as the *subjective* security. This means
(a) the changes are not visible to anyone looking at NFSD through /proc, (b)
there is no leakage between two ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 24/37] NFS: Register NFS for caching and retrieve ...
Register NFS for caching and retrieve the top-level cache index object cookie.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/Makefile | 1 +
fs/nfs/fscache-index.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++
fs/nfs/fscache.h | 35 ++++++++++++++++++++++++++++++++
fs/nfs/inode.c | 8 +++++++
4 files changed, 97 insertions(+), 0 deletions(-)
create mode 100644 fs/nfs/fscache-index.c
create mode 100644 fs/nfs/fscache.h
diff ...
| Feb 28, 5:45 pm 2008 |
| David Howells | [PATCH 08/37] Security: Add a kernel_service object clas ...
Add a 'kernel_service' object class to SELinux and give this object class two
access vectors: 'use_as_override' and 'create_files_as'.
The first vector is used to grant a process the right to nominate an alternate
process security ID for the kernel to use as an override for the SELinux
subjective security when accessing stuff on behalf of another process.
For example, CacheFiles when accessing the cache on behalf on a process
accessing an NFS file needs to use a subjective security ID ...
| Feb 28, 5:44 pm 2008 |
| David Howells | [PATCH 31/37] NFS: FS-Cache page management [ver #34]
FS-Cache page management for NFS. This includes hooking the releasing and
invalidation of pages marked with PG_fscache (aka PG_private_2) and waiting for
completion of the write-to-cache flag (PG_fscache_write aka PG_owner_priv_2).
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/file.c | 17 +++++++++++++----
fs/nfs/fscache.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
fs/nfs/fscache.h | 22 ++++++++++++++++++++++
3 files changed, 84 insertions(+), 4 ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 37/37] NFS: Add mount options to enable local cac ...
Add NFS mount options to allow the local caching support to be enabled.
The attached patch makes it possible for the NFS filesystem to be told to make
use of the network filesystem local caching service (FS-Cache).
To be able to use this, a recent nfsutils package is required.
There are three variant NFS mount options that can be added to a mount command
to control caching for a mount. Only the last one specified takes effect:
(*) Adding "fsc" will request caching.
(*) Adding ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 01/37] KEYS: Increase the payload size when insta ...
Increase the size of a payload that can be used to instantiate a key in
add_key() and keyctl_instantiate_key(). This permits huge CIFS SPNEGO blobs to
be passed around. The limit is raised to 1MB. If kmalloc() can't allocate a
buffer of sufficient size, vmalloc() will be tried instead.
Signed-off-by: David Howells <dhowells@redhat.com>
---
security/keys/keyctl.c | 38 ++++++++++++++++++++++++++++++--------
1 files changed, 30 insertions(+), 8 deletions(-)
diff --git ...
| Feb 28, 5:43 pm 2008 |
| David Howells | [PATCH 34/37] NFS: Read pages from FS-Cache into an NFS ...
Read pages from an FS-Cache data storage object representing an inode into an
NFS inode.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/nfs/fscache.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/nfs/fscache.h | 47 +++++++++++++++++++++++
fs/nfs/read.c | 18 +++++++++
3 files changed, 176 insertions(+), 1 deletions(-)
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c
index 4c0a8e2..7551c3b 100644
--- a/fs/nfs/fscache.c
+++ b/fs/nfs/fscache.c
@@ ...
| Feb 28, 5:46 pm 2008 |
| David Howells | [PATCH 19/37] CacheFiles: Export things for CacheFiles [ ...
Export a number of functions for CacheFiles's use.
Signed-off-by: David Howells <dhowells@redhat.com>
---
fs/super.c | 1 +
security/security.c | 2 ++
2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/fs/super.c b/fs/super.c
index 88811f6..1133b43 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -267,6 +267,7 @@ int fsync_super(struct super_block *sb)
__fsync_super(sb);
return sync_blockdev(sb->s_bdev);
}
+EXPORT_SYMBOL_GPL(fsync_super);
/**
...
| Feb 28, 5:45 pm 2008 |
| Mingming Cao | Re: new_block error
Ah...That seems a wrong, should returns EIO in this case.
The fs has a marked the blocks for fs metadata as "used" on bitmaps at
the mkfs time, so if we are able to allocate a new block(which checks
Ur..If the allocated data blocks overlaps the fs metadata blocks, that
means fs is corrupted: could be a bad block group descriptor, or a bad
bitmap. In any case it should mark fs error and should not continue
allocation in next group.
What does fsck reports?
Mingming
--
| Feb 28, 5:59 pm 2008 |
| Chris Kottaridis | Re: new_block error
That's all I currently have of the log, I'll see if I can get more of
it.
I was pointed to this diff that has a "goto out" added if we hit this
scenario:
feda58d37ae0efe22e711a74e26fb541d4eb1baa
fs/ext3/balloc.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
index a26e683..d2dface 100644
--- a/fs/ext3/balloc.c
+++ b/fs/ext3/balloc.c
@@ -530,11 +530,13 @@ do_more:
in_range (block, ...
| Feb 28, 5:10 pm 2008 |
| Andreas Dilger | Re: new_block error
Are these patches in the upstream kernel yet? I'd submitted fixes like
this for 2.4 kernels, but it never seems to make it into the kernel for
2.6...
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
--
| Feb 29, 1:44 pm 2008 |
| Ric Wheeler | Re: background on the ext3 batching performance issue
This sounds like a really clean way to self tune without having any hard coded
assumptions (like the current 1HZ wait)...
ric
--
| Feb 29, 7:52 am 2008 |
| Andreas Dilger | Re: [RFC][PATCH] fs/partitions/msdos: directly check if ...
There is also a similar complaint from users who format ext3 directly on
a disk/LUN without a partition table, because the partition table offset
negatively impacts the performance of the filesystem (causing unaligned
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
--
| Feb 28, 7:16 pm 2008 |
| Andrew Morton | Re: [PATCH 03/11] VFS: Add security label support to *notify
It would be nicer to change vfs_setxattr_locked() so that it
takes a const char *.
--
| Feb 28, 11:57 pm 2008 |
| Christoph Hellwig | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Then use the existing side-band protocol and ignore the NFSv4 spec
And changing the name and minor details is exactly what Casey requested.
--
| Feb 28, 5:39 pm 2008 |
| Trond Myklebust | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
NO! It is not a "small matter of work".
The fact is that private crap like the 'security' and 'system' namespace
makes describing 'xattr' as a protocol a non-starter and an
interoperability nightmare. If you can't do better than xattr for a
security protocol, then it is time to go look for another job...
--
| Feb 28, 10:01 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Trond can, and I'm completely confident he will, correct me if I'm
wrong, but interoperability seems to require that you can't assume
the perfect administration scenario. If you could, the name/value
pair scheme would be perfectly viable, but Trond has very clearly
explained why it is not reasonable to assume that.
But, for early going you may get away with telling people that
the configuration has to be identical. They won't listen and will
mess it up, but you will probably get away with ...
| Feb 29, 3:58 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Ok, and since there is no POSIX file system semantic defined
for extended attributes it's really tough to create a protocol
And without a definition of what behavior should be on the file system
you can't really say what the behavior should be in the network
And a precursor to this is that the community agree on the underlying
file system semantics. Just because xattrs work on Irix and Linux
doesn't make them standard, and it would be rough going to claim
that the existance of those two ...
| Feb 29, 11:52 am 2008 |
| Stephen Smalley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Possibly I'm missing something, but if I'm implementing a security
module that has any security attribute at all, e.g. capability module
with security.capability, and I see a hook called "get_security_blob" or
"get_security_attr" or the like, I'll implement that hook and return my
attribute there. Which in turn will _break_ the labeled NFS
functionality because it is expecting a MAC label specifically.
The whole point here is that we do not want modules like capability to
return their ...
| Feb 29, 6:30 am 2008 |
| Stephen Smalley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Fair point - my apologies to Casey.
--
Stephen Smalley
National Security Agency
--
| Feb 29, 6:31 am 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
With the SGI supplied reference implementation it ought to be a
small matter of work to write an RFC. If the information weren't
SGI proprietary I could even tell you how long it ought to take
a junior engineer in Melbourne to write. The fact that there is
currently no RFC does not mean that there cannot be a RFC, only
that no one has written (or published) one yet.
Casey Schaufler
casey@schaufler-ca.com
--
| Feb 28, 6:26 pm 2008 |
| Trond Myklebust | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Describing what is supposed to be a security mechanism in a structured
fashion for use in a protocol should hardly be an impossible task (and
AFAICS, Dave & co are making good progress in doing so). If it is, then
that casts serious doubt on the validity of the security model...
There should be no need for ioctls.
--
| Feb 28, 6:00 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Actually we can expect interoperability with SELinux on both ends. With
policy being the same on both ends it is completely valid to export a
secctx which is a user readable text representation of a label and be
able to use it on another selinux machine with the same policy. If I
have a RHEL4 and RHEL 5 box with different policies then it is the job
of the translation daemon to say I've gotten this label from this doi do
I have a mapping for it. If yes translate it into my doi. If not ...
| Feb 29, 3:15 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
If this is the method we are going to use then we need a corresponding
set_security_blob as well. This seems like a paradigm shift for
accessing security information in the kernel. I said to Casey in the
beginning that I'd be willing to revisit it but that neither he or I
alone could make the decision. Unless I misunderstood the original
mandate for security information and that it only applies to how user
space accesses it.
Dave
--
| Feb 28, 5:42 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Hehe I didn't miss it but I don't drink (A coke would be greatly
--
| Feb 28, 7:09 pm 2008 |
| Stephen Smalley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
BTW, to date, "security blob" has been used to refer to the structures
allocated by the security modules referenced by the void* security
fields in the kernel data structures (task, inode, ...), while
"secctx" (security context) and "secid" (security id) have been
leveraged by subsystems like audit, netlink and labeled IPSEC to
represent security labels.
--
Stephen Smalley
National Security Agency
--
| Feb 29, 7:45 am 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
It assumes more than that. It assumes that a secctx will be
interpreted exactly the same way on both the client and the server.
On an old style MLS machine, where the label was encoded in a
data structure, this was usually a reasonable assumption, but
even then not always. Given that there is no reason to expect that
the policy on the server will match that on the client it looks
to me like you've got a day one exposure. It doesn't matter that
the LSM is the same on both ends, that's one of ...
| Feb 29, 3:27 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Well, yes, but look at David Howell's file cacheing work
Sorry, I don't understand how user space and mandates go together here.
Casey Schaufler
casey@schaufler-ca.com
--
| Feb 28, 7:07 pm 2008 |
| James Morris | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
An xattr protocol is overkill for conveying a MAC label over the network,
and would still not provide the required semantics.
Please see prior discussion on this e.g.
http://marc.info/?l=linux-kernel&m=120424789929258&w=2
Note that RAs are already used to convey ACLs and all other system-managed
metatdata. i.e. an extensible, appropriate infrastructure already exists
in the NFSv4 protocol, and has been used successfully for similar
purposes. We do not need to add a new, generalized ...
| Feb 28, 7:15 pm 2008 |
| Dave Quigley | Re: [PATCH 03/11] VFS: Add security label support to *notify
So after looking at this it seems that this is going to be a far more
changes to NFS to set something that is an inode attribute. I can keep
looking into it but it seems like it can be done much cleaner as an
inode_setattr extension rather than adding new structures all over the
nfs code.
Dave
--
| Feb 28, 6:52 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Most of the original SGI XFS team went to NetApp. The engineer
who developed the side-band xattr protocol (last I heard he was a
real estate speculator in Florida) spent lots of time with them.
Easier may be pragmatic, but that does not make it right.
I suggest, that in my opinion (there, is that sufficiently
non-confrontational?) that Linux and the LSM are much better
served by a general xattr protocol than by adding a single
Well, that's why I keep suggesting ...
| Feb 28, 6:47 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Ah, well, I don't understand why, but that's probably just
Ok, I can buy that it doesn't fit in with the current protocol
mindset, and that I for one have not demonstrated that it can
be. I remember how upset the IETF got over the original CIPSO
proposal not specifying which label tag value coresponded to
But ... I don't have a job. You're being mean. (smiley)
I think that we have a conflict between what works well for
a filesystem (xattrs are really helpful) and what works well
for a ...
| Feb 29, 10:26 am 2008 |
| Christoph Hellwig | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
It's as unstructured as the named attributes already in. Or file data
for that matter.
--
| Feb 28, 5:51 pm 2008 |
| Christoph Hellwig | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
What about Casey's suggestion of get_security_blob? For any reasonable
module that just has a single xattr it's trivial and for those that
have multiple or a different storage model it might get complicated
but that's not our problem for now.
--
| Feb 28, 6:00 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
The reason we are trying to go through the standards process in the
first place is that there is a desire to use SELinux with large netapp
storage boxes. I don't believe that netapp supports the existing
side-band protocol for NFSv4 and the impression I got was that they we
were going to have an incredibly hard time convincing them of putting
anything in that isn't part of the standard. It seems that adding one
recommended attribute which is described in a 3 page internet draft(Most
of which ...
| Feb 28, 5:32 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Accepted. Now we work together like horses in troika.
Casey Schaufler
casey@schaufler-ca.com
--
| Feb 29, 10:52 am 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
I completely disagree here. The Linux development model isn't to code
the entire thing throw it over a wall and then deal with the collateral
damage. This first version assumes a heterogenous environment and from
what we see so far that seems to be the common usecase for this
technology. A prototype implementation is already done for label
translations and it does need to be outlined in the RFC (Which I've
already started doing). However it is not necessary for an initial
release. The ...
| Feb 29, 2:00 pm 2008 |
| Dave Quigley | Re: [PATCH 03/11] VFS: Add security label support to *notify
So this method will work on the server side and I will probably switch
to it. However while working on switching over I found that the client
side uses an iattr to pass inode information down into the protocol
calls. So there are two options. Add this to the iattr structure and do
this properly in a clean way. Or add additional params down the call
chain into these protocol handlers for NFS. Which is the better option
for this?
Dave
--
| Feb 29, 1:19 pm 2008 |
| Trond Myklebust | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
What part of 'interoperability' don't you get here?
There is no room for extensions that allow clients+servers to establish
arbitrary private protocols.
--
| Feb 28, 10:04 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
You might be right that Linux and LSM are better served by this, but
this has to be used by more than just Linux. Solaris has the new FMAC
initiative (The F is silent) which will probably want to use this as
well. SEBSD/SEDarwin also has a use for this and they have a MAC label
It seems your argument is against using xattrs. Regardless of this hook
the 0 xattr LSM is still borked by this. security_inode_getsecurity(...,
suffix, ...). It is assumed that the fundamental function for ...
| Feb 28, 6:33 pm 2008 |
| Trond Myklebust | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
The problem isn't that of supporting the naive user xattr model: we can
almost do that within the existing 'named attribute' model of NFSv4. The
problem is that of supporting the arbitrary "security metadata" that are
allowed to have side-effects on the system behaviour, and that we appear
to have thought was a good idea to overload onto the xattr interface.
In the case of maclabels, where the "side-effect" is to describe and
enable extra access control rules, then you have the potential ...
| Feb 29, 12:50 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
What do you intend to do with this blob once you have it? Somehow it
needs to be set on the other end. So unless you want each LSM
I was inquiring if the mandate to use xattrs for security attributes was
only for userspace's access to them and the kernel could create separate
--
| Feb 28, 6:48 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
That is simply because I don't care for your design and implementation
choices, I think they're a bad way to go, I've suggested what I
think you should do, and I'm sorry that that comes off as
confrontational but that does not change what I see as flaws in
your approach. I understand what you're trying to do and I think
You're very possibly right. I am not argueing from what's right for
Smack, I am argueing from what's right for the LSM. Smack is a label
based MAC LSM, like SELinux. I ...
| Feb 28, 6:04 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
I know but for some odd reason we kept arguing about it. Unless you want
me to repost the patch on it's own with the name changed you are going
I agree with your suggestion here but nowhere in earlier emails did you
outline this. You just vaguely described a method that sounds like the
selinux sidtab. If you had described it this way in the beginning we
would have be done with after the first response. If we are going to
work well in the future you need to be more clear when you make
That ...
| Feb 28, 5:52 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
There are several things here. I've spoken to several people about this
and the belief I've gotten from most of them is that a recommended
attribute is how this is to be transported. The NFSv4 spec people will
probably say that if you want xattr like functionality for NFSv4 use
named attributes. For us this is not an option since we require
semantics to label on create/open and the only way we can do this is by
adding a recommended attribute. The create/open calls in NFSv4 takes a
list of ...
| Feb 28, 5:04 pm 2008 |
| Dave Quigley | Re: [PATCH 03/11] VFS: Add security label support to *notify
Thanks for the heads up on this. This is partially the reason I wanted
to post the set for feedback. If it pans out this will probably be a
--
| Feb 28, 5:06 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Phew, he missed that one.
Casey Schaufler
casey@schaufler-ca.com
--
| Feb 28, 7:29 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
I can understand that an implementation of NFS+xattr could
present some issues where only one side speaks the xattr
protocols, or where they speak them differently. If that's
a showstopper from the network protocol side (it isn't from
the file system end, client or server) then you're right,
it won't work. What I don't understand is why it would be
a showstopper. The current NFS protocol makes all sorts of
assumptions about the data it passes (like the uids on the
two ends mapping sanely) ...
| Feb 29, 10:46 am 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Now this is were I always get confused. I sounds like you're
saying that a name/value pair is insufficiently structured for
Sorry, but as far as I'm concerned you just threw a bunny under
the train for no apparent reason. What have ioctls got to do with
anything?
Casey Schaufler
casey@schaufler-ca.com
--
| Feb 28, 6:55 pm 2008 |
| Casey Schaufler | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Hum. Security metadata was one of the justifications for the
original implementation of the xattr interface for XFS at SGI.
The implementation was intended to be generic and allow for
storage of data that impacts system behavior. No, it is not
overloading at all, it is really supposed to be used that way.
That's how it works on CXFS, which I know is still proprietary,
Yes, I can see that having a specific interface reduces the
documentation required, and simplifies it as well. ...
| Feb 29, 2:07 pm 2008 |
| Trond Myklebust | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
Two of the main reasons for NFS's success as a protocol are the facts
that it is (more or less) standardized, while remaining (again more or
less) back-end agnostic. I can take pretty much any client from any one
vendor and any server from any other vendor, and make them work
together.
The reason why this works is mainly because the protocol has built upon
a consensus assumption of POSIX filesystem semantics on the servers
(hence, BTW, the pain when the IETF requested that we ...
| Feb 29, 11:28 am 2008 |
| Christoph Hellwig | Re: [PATCH 03/11] VFS: Add security label support to *notify
Take a look at how ACLs are handled. They're passed up from the _decode
operations into a small structure that is referenced by struct
nfsd4_<operation> and pass it up until the level where the dentry
---end quoted text---
--
| Feb 28, 5:23 pm 2008 |
| Dave Quigley | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
I am adding a new hook to provide the functionality that Casey
suggested. It takes an inode, context, contextlen and sets it in the
LSM. The question is that since there is a need to be able to set
in-core, on-disk, or both; should these be two separate hooks? or should
we make the hook take a flag that has in-core, and ondisk and it can be
masked together for both?
Dave
--
| Feb 29, 2:50 pm 2008 |
| James Morris | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
NAs are a non-starter here for a couple of reasons.
1. They are specified as being user managed and opaque to NFS. MAC
labels are typically set by the OS, and may only be set by the user when
permitted by MAC policy. The labels need to be interpreted by the OS to
allow MAC policy to be enforced.
2. The NA namespace is arbitrary and opaque to the OS. There's no scope
in NFSv4 design to allow a namespace to be specified for e.g. MAC labels,
and trying to modify the spec to allow it ...
| Feb 28, 6:15 pm 2008 |
| Trond Myklebust | Re: [PATCH 01/11] Security: Add hook to get full maclabe ...
As I've told you several times before: we're _NOT_ putting private
ioctl^Hxattrs onto the wire. If the protocol can't be described in an
RFC, then it isn't going in no matter what expletive you choose to
use...
--
| Feb 28, 5:50 pm 2008 |
| Joe Perches | Re: [PATCH] linux/fs.h - Convert debug functions declare ...
The inlined functions don't actually appear in the generated code.
Look at the code generation differences for kernel/sched.c
function place_entity
$ size sched.inline.o sched.if0.o
text data bss dec hex filename
31385 2854 328 34567 8707 sched.inline.o
31366 2854 328 34548 86f4 sched.if0.o
The current preprocessed only kernel/sched.i file contains:
# 612 "include/linux/device.h"
static inline __attribute__((always_inline)) int ...
| Feb 28, 6:09 pm 2008 |
| Serge E. Hallyn | Re: [PATCH 3/4] autofs4 - track uid and gid of last moun ...
You can become root in the new container. Your capabilities are
meaningful only to targets (users, files) which exist in the user
namespace in which you are root. It becomes more precise than the
--
| Feb 29, 10:42 am 2008 |
| Ian Kent | Re: [PATCH 3/4] autofs4 - track uid and gid of last moun ...
Yep, that's precisely the way this is used, by autofs anyway.
I guess the problem we face is that since this is a public interface
other applications could use this in a different way and we can't
control that. I think I need more information so I can document the
defined usage in my revised patch set.
In version 5 I set $UID, $GID, $USER, $GROUP and $HOME in addition to
the standard autofs macros, $ARCH, $CPU, $HOST, $OSNAME, $OSREL and
$OSVERS, and then expand the map entry.
The ...
| Feb 28, 8:32 pm 2008 |
| Pavel Emelyanov | Re: [PATCH 3/4] autofs4 - track uid and gid of last moun ...
I'm afraid, that I'm just starting a new thread of discussion in a
So do you mean that I can become a root, by calling clone()?
Thanks,
Pavel
--
| Feb 29, 9:20 am 2008 |
| Serge E. Hallyn | Re: [PATCH 3/4] autofs4 - track uid and gid of last moun ...
The way the user namespaces work right now is similar to say the IPC
namespace - a task belongs to one user, that user belongs to precisely
one user namespace.
Even in my additional userns patches, I was changing uid to store the
(uid, userns) so a struct user still belonged to just one user
namespace.
In contrast, with pid namespaces a task is associated with a 'struct
pid' which links it to multiple process ids, one in each pid namespace
to which it belongs.
Perhaps we should be ...
| Feb 29, 9:09 am 2008 |
| Ian Kent | Re: [PATCH 4/4] autofs4 - add miscelaneous device for ioctls
It appears I could do this with the generic netlink subsystem.
And, will still be in the netlink implementation and will still return
Agian, will still be in the netlink implementation.
Also, still in the netlink implementation, with a comment a bit more
That's not going to change.
There's nothing new here at all.
This is merely an re-implementation of the existing autofs ioctl
I'll add a document describing this, as previously agreed.
I haven't had any problems with this ...
| Feb 29, 9:24 am 2008 |
| Andrew Morton | Re: [patch 2/6] mm: bdi: export BDI attributes in sysfs
please always provide diffstats.
Documentation/ABI/testing/sysfs-class-bdi | 50 +++++++++++++
block/genhd.c | 3
include/linux/backing-dev.h | 8 ++
include/linux/writeback.h | 3
lib/percpu_counter.c | 1
mm/backing-dev.c | 108 ++++++++++++++++++++++++++++++
mm/page-writeback.c | 2
mm/readahead.c | ...
| Feb 29, 4:26 am 2008 |
| previous day | today | next day |
|---|---|---|
| February 28, 2008 | February 29, 2008 | March 1, 2008 |
