.
This is useful for CacheFiles in that it allows CacheFiles to access the cache
files and directories using the cache's security context rather than the
security context of the process on whose behalf it is working, and in the
context of which it is running.
Signed-Off-By: David Howells [EMAIL PROTECTED
Permit an inode's security ID to be obtained by the CacheFiles module. This is
then used as the SID with which files and directories will be created in the
cache.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
include/linux/security.h | 13 +
security/dummy.c |6
Get the SID under which the CacheFiles module should operate so that the
SELinux security system can control the accesses it makes.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
include/linux/security.h | 20
security/dummy.c |7 +++
security/selinux
an NFS filesystem to use caching, add an fsc option to the mount:
mount warthog:/ /a -o fsc
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
fs/Kconfig |8 +
fs/nfs/Makefile|1
fs/nfs/client.c| 11 +
fs/nfs/file.c | 38
to detect this.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/splice.c|2 +-
include/linux/page-flags.h | 30 +-
include/linux/pagemap.h| 11 +++
mm/filemap.c | 16
mm/migrate.c
These patches add local caching for network filesystems such as NFS and AFS.
FS-Cache now runs fully asynchronously as required by Trond Myklebust for NFS.
--
Changes:
(*) The CacheFiles module no longer accepts directory fds in its cull and
inuse commands from cachefilesd. Instead it
) to do the honours.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
mm/readahead.c | 40 ++--
1 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/mm/readahead.c b/mm/readahead.c
index 39bf45d..12d1378 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
an NFS filesystem to use caching, add an fsc option to the mount:
mount warthog:/ /a -o fsc
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
fs/Kconfig |8 +
fs/nfs/Makefile|1
fs/nfs/client.c| 11 +
fs/nfs/file.c | 38
Export a number of functions for CacheFiles's use.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
fs/super.c |2 ++
kernel/auditsc.c |2 ++
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/fs/super.c b/fs/super.c
index fc8ebed..c0d99dd 100644
--- a/fs/super.c
-Off-By: David Howells [EMAIL PROTECTED]
---
include/linux/pagemap.h |5 +
mm/filemap.c| 19 +++
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index d1049b6..452fdcf 100644
--- a/include/linux
Permit an inode's security ID to be obtained by the CacheFiles module. This is
then used as the SID with which files and directories will be created in the
cache.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
include/linux/security.h | 13 +
security/dummy.c |6
Get the SID under which the CacheFiles module should operate so that the
SELinux security system can control the accesses it makes.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
include/linux/security.h | 20
security/dummy.c |7 +++
security/selinux
CacheFiles
indirectly by means of opening a netfs file at the time the cache file is
created.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
include/linux/security.h | 35 +++
security/dummy.c | 12
security/selinux/hooks.c | 18
for this that uses the prepare_write() and
commit_write() address_space operations to bound a copy directly into the page
cache.
Hook the Ext2 and Ext3 operations to the generic implementation.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
fs/ext2/inode.c|2 +
fs/ext3/inode.c|3
.
This is useful for CacheFiles in that it allows CacheFiles to access the cache
files and directories using the cache's security context rather than the
security context of the process on whose behalf it is working, and in the
context of which it is running.
Signed-Off-By: David Howells [EMAIL PROTECTED
James Morris [EMAIL PROTECTED] wrote:
+ u32 (*inode_get_secid)(struct inode *inode);
To maintain API consistency, please return an int which only acts as an
error code, and returning the secid via a *u32 function parameter.
Does that apply to *all* the functions, irrespective of whether
Trond Myklebust [EMAIL PROTECTED] wrote:
Dang, that's a lot of inlines... AFAICS, approx half of fs/nfs/fscache.h
should really be moved into fscache.c.
If you wish. It seems a shame since a lot of them have only one caller.
+ /* we can do this here as the bits are only set with the page
James Morris [EMAIL PROTECTED] wrote:
David, I've looked at the code and can't see that you need to access the
label itself outside the LSM. Could you instead simply pass the inode
pointer around?
It's not quite that simple. I need to impose *two* security labels in
Instead, feel free to update the text-based mount interface (which can
be found in 2.6.23-rc1 and later).
I presume you're referring to nfs_mount_option_tokens[] and friends. Is there
a mount program that can drive this?
David
-
To unsubscribe from this list: send the line unsubscribe
Display the local caching state in /proc/fs/nfsfs/volumes.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/nfs/client.c |7 ---
fs/nfs/fscache.h | 12
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 0de4db4
for this that uses the prepare_write() and
commit_write() address_space operations to bound a copy directly into the page
cache.
Hook the Ext2 and Ext3 operations to the generic implementation.
Signed-Off-By: David Howells [EMAIL PROTECTED]
---
fs/ext2/inode.c|2 +
fs/ext3/inode.c|3
Trond Myklebust [EMAIL PROTECTED] wrote:
Dang, that's a lot of inlines... AFAICS, approx half of fs/nfs/fscache.h
should really be moved into fscache.c.
If you wish. It seems a shame since a lot of them have only one caller.
...however it also forces you to export a lot of stuff
Casey Schaufler [EMAIL PROTECTED] wrote:
Sigh. So it's not only SELinux specific, but RedHat specific as well.
*Blink*. How did you come to that conclusion?
(3) The cache driver wants to access the files in the cache, but it's
running in the security context of either the
Casey Schaufler [EMAIL PROTECTED] wrote:
(1) int security_get_context(void **_context);
This allocates and gives the caller a blob that describes the current
context of all the LSM module states attached to the current task and
stores a pointer to it in *_context.
Is
Casey Schaufler [EMAIL PROTECTED] wrote:
Whoops, sorry. You leave the process label alone and explicitly
set the file label using the xattr interfaces.
That's the wrong way to do things. There'd then be a window in which
cachefilesd (the userspace daemon) could attempt to view the file when
Casey Schaufler [EMAIL PROTECTED] wrote:
Could you describe how this compares to the proposal that the
AppArmor developers suggested recently? I expect that we can
reduce the amount of discussion required, and maybe avoid some
confusion if you could do that.
I don't know what that is.
Hi Christoph, Al,
Here's a set of patches that remove all calls to iget() and all read_inode()
functions. They should be removed for two reasons: firstly they don't lend
themselves to good error handling, and secondly their presence is a temptation
for code outside a filesystem to call iget()
Introduce a function to register failure in an inode construction path. This
includes marking the inode under construction as bad, unlocking it and
releasing it.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
Documentation/filesystems/porting | 18 +-
fs/bad_inode.c
Use iget_failed() in AFS to kill a failed inode.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/afs/inode.c |5 +
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/fs/afs/inode.c b/fs/afs/inode.c
index d196840..ca9b02f 100644
--- a/fs/afs/inode.c
+++ b/fs/afs/inode.c
Use iget_failed() in GFS2 to kill a failed inode.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/gfs2/inode.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 34f7bcd..498844f 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2
);
if (IS_ERR(inode)) {
ret = PTR_ERR(inode);
goto error;
}
Signed-off-by: David Howells [EMAIL PROTECTED]
---
Documentation/filesystems/Exporting |5 -
Documentation/filesystems/Locking |3 ---
Documentation/filesystems/vfs.txt | 16
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/affs/affs.h |2 +-
fs/affs/amigaffs.c |6 --
fs/affs/inode.c| 20 +---
fs/affs/namei.c|7 +++
fs/affs/super.c| 12 +---
5
Stop the autofs filesystem from using iget() and read_inode(). Replace
autofs_read_inode() with autofs_iget(), and call that instead of iget().
autofs_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.
Signed-off-by: David
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/befs/linuxvfs.c | 39 +--
1 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index a451418
error incurred when getting the root inode
instead of ENOMEM.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/cifs/cifsfs.c |8
fs/cifs/cifsfs.h |1 +
fs/cifs/inode.c | 35 ++-
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git
incurred when getting the root inode
instead of EACCES.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/efs/inode.c | 25 +
fs/efs/namei.c | 23 ---
fs/efs/super.c | 18 --
include/linux/efs_fs.h |2
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/ext2/ext2.h |2 +-
fs/ext2/inode.c | 26 +++---
fs/ext2/namei.c | 12 ++--
fs/ext2/super.c | 32 ++--
4 files changed
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/ext3/ialloc.c| 15 ++-
fs/ext3/inode.c | 25 +++--
fs/ext3/namei.c | 25 +++--
fs/ext3/resize.c
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/ext4/ialloc.c| 13 +
fs/ext4/inode.c | 25 +++--
fs/ext4/namei.c | 25 +++--
fs/ext4/resize.c
Stop the FAT filesystem from using iget() and read_inode(). Replace
the call to iget() with a call to ilookup().
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/fat/inode.c |6 ++
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index
error incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/freevxfs/vxfs_extern.h |2 +-
fs/freevxfs/vxfs_inode.c | 45 +
fs/freevxfs/vxfs_lookup.c |6 +++---
fs/freevxfs/vxfs_super.c
() returns any error incurred when getting the root inode.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/hfsplus/btree.c |6 --
fs/hfsplus/dir.c|6 +++---
fs/hfsplus/hfsplus_fs.h |3 +++
fs/hfsplus/super.c | 44
4
Stop the PROCFS filesystem from using iget() and read_inode(). Merge
procfs_read_inode() into procfs_get_inode(), and have that call iget_locked()
instead of iget().
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/proc/inode.c | 60
error incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/romfs/inode.c | 45 +++--
1 files changed, 31 insertions(+), 14 deletions(-)
diff --git a/fs/romfs/inode.c b/fs/romfs/inode.c
index
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/qnx4/inode.c | 45 ++---
fs/qnx4/namei.c |8 +---
include/linux/qnx4_fs.h |1 +
3 files changed, 36 insertions
Stop the SYSV filesystem from using iget() and read_inode(). Replace
sysv_read_inode() with sysv_iget(), and call that instead of iget().
sysv_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.
Signed-off-by: David Howells [EMAIL
with inode number 0 - which forms the lookup key.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/hostfs/hostfs_kern.c | 58 ---
1 files changed, 39 insertions(+), 19 deletions(-)
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
index
if the inode goes away.
(*) hppfs_iget() should perhaps subsume init_inode() and hppfs_read_inode().
(*) It would appear that all hppfs inodes are the same inode because iget()
was being called with inode number 0, which forms the lookup key.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs
() to find an inode by
number in a filesystem from code outside that filesystem.
iget_locked() should be used instead. A new function is added (iget_failed)
that is to be called to mark an inode as bad, unlock it and release it should
the get routine fail.
Signed-off-by: David Howells [EMAIL
Zach Brown [EMAIL PROTECTED] wrote:
/* haha, continuing the fine tradition of terrible names in this api.. */
static inline void *PTR_PTR(void *err_ptr) {
BUG_ON(!IS_ERR(err_ptr) || !err_ptr);
return err_ptr;
}
How about ERR_CAST() instead? Or maybe CAST_ERR()?
Jan Kara [EMAIL PROTECTED] wrote:
Hmm, why don't you use the return value from raw_inode? It can be
either -EIO or -EINVAL if 'ino' was invalid...
Good point. Altered.
David
-
To unsubscribe from this list: send the line unsubscribe linux-fsdevel in
the body of a message to [EMAIL
Jan Kara [EMAIL PROTECTED] wrote:
But if you 'goto out' in some branches, we loose the ext3_warning()
which we probably don't want.
Ugh. Okay, I need to rework the changes to that function.
return ERR_PTR(-EACCES);
Wouldn't here -EIO be more appropriate?
I would
Dave Kleikamp [EMAIL PROTECTED] wrote:
Of course, the cast is unnecessary,
The cast is necessary as the argument is a const pointer and the return type
is not.
and I'm sure you meant to return error:
Oops. Yes, I changed my mind and renamed the argument to be 'error', but
forgot to change
Jan Kara [EMAIL PROTECTED] wrote:
Same comments as for ext3 - I think you reversed ext4_test_bit() test
and also the warning won't be issued in some cases which is wrong.
Same replies as for ext3 too. Blech.
You should find altered patches landing in your inbox if you'd care to inspect
Hi Christoph, Al,
Here's a set of patches that remove all calls to iget() and all read_inode()
functions. They should be removed for two reasons: firstly they don't lend
themselves to good error handling, and secondly their presence is a temptation
for code outside a filesystem to call iget()
Introduce a function to register failure in an inode construction path. This
includes marking the inode under construction as bad, unlocking it and
releasing it.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
Documentation/filesystems/porting | 18 +-
fs/bad_inode.c
Convert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:
perl -spi -e 's/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\1)/' `grep -rl
'ERR_PTR[(]*PTR_ERR' fs crypto net security`
Signed-off-by: David Howells [EMAIL PROTECTED]
---
crypto/cbc.c |2 +-
crypto/cryptd.c
Use iget_failed() in GFS2 to kill a failed inode.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/gfs2/inode.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 34f7bcd..498844f 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2
Use iget_failed() in AFS to kill a failed inode.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/afs/inode.c |5 +
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/fs/afs/inode.c b/fs/afs/inode.c
index d196840..ca9b02f 100644
--- a/fs/afs/inode.c
+++ b/fs/afs/inode.c
);
if (IS_ERR(inode)) {
ret = PTR_ERR(inode);
goto error;
}
Signed-off-by: David Howells [EMAIL PROTECTED]
---
Documentation/filesystems/Exporting |5 -
Documentation/filesystems/Locking |3 ---
Documentation/filesystems/vfs.txt | 16
Stop the autofs filesystem from using iget() and read_inode(). Replace
autofs_read_inode() with autofs_iget(), and call that instead of iget().
autofs_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.
Signed-off-by: David
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
Acked-by: Will Dyson [EMAIL PROTECTED]
---
fs/befs/linuxvfs.c | 39 +--
1 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/fs/befs/linuxvfs.c
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/bfs/bfs.h |2 ++
fs/bfs/dir.c |6 +++---
fs/bfs/inode.c | 32 ++--
3 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/fs/bfs/bfs.h b/fs
incurred when getting the root inode
instead of EACCES.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/efs/inode.c | 25 +
fs/efs/namei.c | 23 ---
fs/efs/super.c | 18 --
include/linux/efs_fs.h |2
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/ext2/ext2.h |2 +-
fs/ext2/inode.c | 30 ++
fs/ext2/namei.c | 12 ++--
fs/ext2/super.c | 32 ++--
4 files
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/ext3/ialloc.c| 58 ---
fs/ext3/inode.c | 25 +++-
fs/ext3/namei.c | 29
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/ext4/ialloc.c| 58 ---
fs/ext4/inode.c | 25 +++-
fs/ext4/namei.c | 29
Stop the FAT filesystem from using iget() and read_inode(). Replace
the call to iget() with a call to ilookup().
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/fat/inode.c |6 ++
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index
error incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/freevxfs/vxfs_extern.h |2 +-
fs/freevxfs/vxfs_inode.c | 45 +
fs/freevxfs/vxfs_lookup.c |6 +++---
fs/freevxfs/vxfs_super.c
Stop the FUSE filesystem from using read_inode(), which it doesn't use anyway.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/fuse/inode.c |6 --
1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 5448f62..2986654 100644
() returns any error incurred when getting the root inode.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/hfsplus/btree.c |6 --
fs/hfsplus/dir.c|6 +++---
fs/hfsplus/hfsplus_fs.h |3 +++
fs/hfsplus/super.c | 44
4
Stop the ISOFS filesystem from using read_inode(). Make isofs_read_inode()
return an error code, and make isofs_iget() pass it on.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/isofs/inode.c | 25 +
1 files changed, 17 insertions(+), 8 deletions(-)
diff --git
any error incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/jffs2/dir.c |6 +++--
fs/jffs2/fs.c | 56 ---
fs/jffs2/os-linux.h |2 +-
fs/jffs2/super.c|1 -
4
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
Acked-by: Dave Kleikamp [EMAIL PROTECTED]
---
fs/jfs/inode.c | 20
fs/jfs/jfs_inode.h |2 +-
fs/jfs/namei.c | 34 ++
fs/jfs
error incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/minix/inode.c | 43 +--
fs/minix/minix.h |1 +
fs/minix/namei.c |7 +++
3 files changed, 33 insertions(+), 18 deletions
Stop the PROCFS filesystem from using iget() and read_inode(). Merge
procfs_read_inode() into procfs_get_inode(), and have that call iget_locked()
instead of iget().
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/proc/inode.c | 60
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/qnx4/inode.c | 45 ++---
fs/qnx4/namei.c |8 +---
include/linux/qnx4_fs.h |1 +
3 files changed, 36 insertions
error incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/romfs/inode.c | 45 +++--
1 files changed, 31 insertions(+), 14 deletions(-)
diff --git a/fs/romfs/inode.c b/fs/romfs/inode.c
index
Stop the SYSV filesystem from using iget() and read_inode(). Replace
sysv_read_inode() with sysv_iget(), and call that instead of iget().
sysv_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.
Signed-off-by: David Howells [EMAIL
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/ufs/inode.c | 34 --
fs/ufs/namei.c |6 +++---
fs/ufs/super.c | 14 +-
include/linux/ufs_fs.h |2 +-
4 files
.
openpromfs_fill_super() returns any error incurred when getting the root inode
instead of ENOMEM (not that it currently incurs any other error).
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/openpromfs/inode.c | 45 ++---
1 files changed, 30 insertions
() to find an inode by
number in a filesystem from code outside that filesystem.
iget_locked() should be used instead. A new function is added (iget_failed)
that is to be called to mark an inode as bad, unlock it and release it should
the get routine fail.
Signed-off-by: David Howells [EMAIL
if the inode goes away.
(*) hppfs_iget() should perhaps subsume init_inode() and hppfs_read_inode().
(*) It would appear that all hppfs inodes are the same inode because iget()
was being called with inode number 0, which forms the lookup key.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs
with inode number 0 - which forms the lookup key.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/hostfs/hostfs_kern.c | 58 ---
1 files changed, 39 insertions(+), 19 deletions(-)
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
index
David Howells [EMAIL PROTECTED] wrote:
A tarball of the patches can be retrieved from:
http://people.redhat.com/~dhowells/iget-remove.tar.bz2
I've updated that to actually reflect this set of patches and not the old set.
David
-
To unsubscribe from this list: send the line unsubscribe
David Howells [EMAIL PROTECTED] wrote:
Why do you move it out of line?
Because otherwise every file that gets compiled that includes linux/fs.h will
emit a warning that the implementation of that function is deprecated.
Or, rather, that read_inode() is deprecated.
David
-
To unsubscribe
Christoph Hellwig [EMAIL PROTECTED] wrote:
Why do you move it out of line?
Because otherwise every file that gets compiled that includes linux/fs.h will
emit a warning that the implementation of that function is deprecated.
David
-
To unsubscribe from this list: send the line unsubscribe
Christoph Hellwig [EMAIL PROTECTED] wrote:
I don't like this one very much, I'd rather take the variant Linus
outline in his last post on that topic..
I'd rather not take that variant.
David
-
To unsubscribe from this list: send the line unsubscribe linux-fsdevel in
the body of a message to
Sam Ravnborg [EMAIL PROTECTED] wrote:
One like one variant, another like another variant.
Both fails to say why.
It's shorter, more compact, and of course requires the least amount of change
(especially as I can automate it with a command line perl script).
David
-
To unsubscribe from this
Add an ERR_CAST() macro to complement ERR_PTR and co. for the purposes of
casting an error entyped as one pointer type to an error of another pointer
type whilst making it explicit as to what is going on.
This provides a replacement for the ERR_PTR(PTR_ERR(p)) construct.
Signed-off-by: David
Convert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:
perl -spi -e 's/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\1)/' `grep -rl
'ERR_PTR[(]*PTR_ERR' fs crypto net security`
Signed-off-by: David Howells [EMAIL PROTECTED]
---
crypto/cbc.c |2 +-
crypto/cryptd.c
Introduce a function to register failure in an inode construction path. This
includes marking the inode under construction as bad, unlocking it and
releasing it.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
Documentation/filesystems/porting | 18 +-
fs/bad_inode.c
Use iget_failed() in AFS to kill a failed inode.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/afs/inode.c |5 +
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/fs/afs/inode.c b/fs/afs/inode.c
index d196840..ca9b02f 100644
--- a/fs/afs/inode.c
+++ b/fs/afs/inode.c
Hi Christoph, Al,
Here's a set of patches that remove all calls to iget() and all read_inode()
functions. They should be removed for two reasons: firstly they don't lend
themselves to good error handling, and secondly their presence is a temptation
for code outside a filesystem to call iget()
Stop the autofs filesystem from using iget() and read_inode(). Replace
autofs_read_inode() with autofs_iget(), and call that instead of iget().
autofs_iget() then uses iget_locked() directly and returns a proper error code
instead of an inode in the event of an error.
Signed-off-by: David
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
Acked-by: Will Dyson [EMAIL PROTECTED]
---
fs/befs/linuxvfs.c | 39 +--
1 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/fs/befs/linuxvfs.c
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/bfs/bfs.h |2 ++
fs/bfs/dir.c |6 +++---
fs/bfs/inode.c | 32 ++--
3 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/fs/bfs/bfs.h b/fs
error incurred when getting the root inode
instead of ENOMEM.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/cifs/cifsfs.c |8
fs/cifs/cifsfs.h |1 +
fs/cifs/inode.c | 35 ++-
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git
incurred when getting the root inode
instead of EACCES.
Signed-off-by: David Howells [EMAIL PROTECTED]
---
fs/efs/inode.c | 25 +
fs/efs/namei.c | 23 ---
fs/efs/super.c | 18 --
include/linux/efs_fs.h |2
incurred when getting the root inode
instead of EINVAL.
Signed-off-by: David Howells [EMAIL PROTECTED]
Acked-by: Theodore Ts'o [EMAIL PROTECTED]
---
fs/ext2/ext2.h |2 +-
fs/ext2/inode.c | 30 ++
fs/ext2/namei.c | 12 ++--
fs/ext2/super.c | 32
101 - 200 of 417 matches
Mail list logo