Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Christoph Lameter
On Mon, 1 Oct 2007, Andrew Morton wrote: > Ah. So the already-dropped > slub-exploit-page-mobility-to-increase-allocation-order.patch was the > culprit? Yes without that patch SLUB will no longer take special action if antifrag is around. - To unsubscribe from this list: send the line "unsubsc

Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Andrew Morton
On Mon, 1 Oct 2007 14:38:55 -0700 (PDT) Christoph Lameter <[EMAIL PROTECTED]> wrote: > On Mon, 1 Oct 2007, Andrew Morton wrote: > > > Do slab and slub use the same underlying page size for each slab? > > SLAB cannot pack objects as dense as SLUB and they have different > algorithm to make the c

Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Christoph Lameter
On Mon, 1 Oct 2007, Andrew Morton wrote: > Do slab and slub use the same underlying page size for each slab? SLAB cannot pack objects as dense as SLUB and they have different algorithm to make the choice of order. Thus the number of objects per slab may vary between SLAB and SLUB and therefore

Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Andrew Morton
On Mon, 1 Oct 2007 13:55:29 -0700 (PDT) Christoph Lameter <[EMAIL PROTECTED]> wrote: > On Sat, 29 Sep 2007, Andrew Morton wrote: > > > > atomic allocations. And with SLUB using higher order pages, atomic !0 > > > order allocations will be very very common. > > > > Oh OK. > > > > I thought we'd

Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Christoph Lameter
On Fri, 28 Sep 2007, Mel Gorman wrote: > Minimally, SLUB by default should continue to use order-0 pages. Peter has > managed to bust order-1 pages with mem=128MB. Admittedly, it was a really > hostile workload but the point remains. It was artifically worked around > with min_free_kbytes (value s

Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Christoph Lameter
On Sat, 29 Sep 2007, Peter Zijlstra wrote: > > On Fri, 2007-09-28 at 11:20 -0700, Christoph Lameter wrote: > > > Really? That means we can no longer even allocate stacks for forking. > > I think I'm running with 4k stacks... 4k stacks will never fly on an SGI x86_64 NUMA configuration given th

Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Christoph Lameter
On Sat, 29 Sep 2007, Andrew Morton wrote: > > atomic allocations. And with SLUB using higher order pages, atomic !0 > > order allocations will be very very common. > > Oh OK. > > I thought we'd already fixed slub so that it didn't do that. Maybe that > fix is in -mm but I don't think so. > > T

Re: [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK

2007-10-01 Thread Christoph Lameter
On Fri, 28 Sep 2007, Nick Piggin wrote: > I thought it was slower. Have you fixed the performance regression? > (OK, I read further down that you are still working on it but not confirmed > yet...) The problem is with the weird way of Intel testing and communication. Every 3-6 month or so they w

Re: [PATCH 20/30] IGET: Stop JFS from using iget() and read_inode()

2007-10-01 Thread Dave Kleikamp
On Mon, 2007-10-01 at 14:11 +0100, David Howells wrote: > Stop the JFS filesystem from using iget() and read_inode(). Replace > jfs_read_inode() with jfs_iget(), and call that instead of iget(). > jfs_iget() then uses iget_locked() directly and returns a proper error code > instead of an inode in

Re: [PATCH 07/30] IGET: Stop BEFS from using iget() and read_inode()

2007-10-01 Thread Zach Brown
return ERR_PTR(PTR_ERR(inode)); I tend to prefer the latter. It seems like a pretty noisy way to get a (void *) cast :/. Maybe a function that has the cast but makes sure it's only used for IS_ERR() pointers? /* haha, continuing the fine tradition of terrible names in this ap

Re: [PATCH 07/30] IGET: Stop BEFS from using iget() and read_inode()

2007-10-01 Thread Linus Torvalds
On Mon, 1 Oct 2007, Christoph Hellwig wrote: > > befs_lookup, which the above gem is from, returns a dentry *. Ahh, ok. Then it actually makes sense. Although I'd prefer it if people planned on writing code like that more along the lines of error = PTR_ERR(inode); if (IS_ERR(i

Re: [patch 2/2] VFS: allow filesystem to override mknod capability checks

2007-10-01 Thread Miklos Szeredi
> On Monday September 24, [EMAIL PROTECTED] wrote: > > From: Miklos Szeredi <[EMAIL PROTECTED]> > > > > Add a new super block flag, that results in the VFS not checking if > > the current process has enough privileges to do an mknod(). > > > > If this flag is set, all mounts for this super block

Re: [PATCH 07/30] IGET: Stop BEFS from using iget() and read_inode()

2007-10-01 Thread Christoph Hellwig
On Mon, Oct 01, 2007 at 10:44:59AM -0700, Linus Torvalds wrote: > > If you're soliciting opinions, I think I tend to prefer the feel of the > > code paths after the changes. I don't know the benefits of the change > > are worth the risk in unmaintained file systems, though. > > > > > + re

Re: [PATCH 07/30] IGET: Stop BEFS from using iget() and read_inode()

2007-10-01 Thread Zach Brown
If you're soliciting opinions, I think I tend to prefer the feel of the code paths after the changes. I don't know the benefits of the change are worth the risk in unmaintained file systems, though. > + return ERR_PTR(PTR_ERR(inode)); This caught my eye. Surely we can do better :).

Re: [PATCH 07/30] IGET: Stop BEFS from using iget() and read_inode()

2007-10-01 Thread Linus Torvalds
On Mon, 1 Oct 2007, Zach Brown wrote: > > If you're soliciting opinions, I think I tend to prefer the feel of the > code paths after the changes. I don't know the benefits of the change > are worth the risk in unmaintained file systems, though. > > > + return ERR_PTR(PTR_ERR(inode));

[PATCH 30/30] IGET: Remove iget() and the read_inode() super op as being obsolete

2007-10-01 Thread David Howells
Remove the old iget() call and the read_inode() superblock operation it uses as these are really obsolete, and the use of read_inode() does not produce proper error handling (no distinction between ENOMEM and EIO when marking an inode bad). Furthermore, this removes the temptation to use iget() to

[PATCH 29/30] IGET: Stop HPPFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the HPPFS filesystem from using iget() and read_inode(). Provide an hppfs_iget(), and call that instead of iget(). hppfs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. hppfs_fill_sb_common() returns any error incurred wh

[PATCH 27/30] IGET: Stop OPENPROMFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the OPENPROMFS filesystem from using iget() and read_inode(). Replace openpromfs_read_inode() with openpromfs_iget(), and call that instead of iget(). openpromfs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. openpromfs_

[PATCH 28/30] IGET: Stop HOSTFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the HOSTFS filesystem from using iget() and read_inode(). Provide hostfs_iget(), and call that instead of iget(). hostfs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. hostfs_fill_sb_common() returns any error incurred w

[PATCH 25/30] IGET: Stop the SYSV filesystem from using iget() and read_inode()

2007-10-01 Thread David Howells
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

[PATCH 26/30] IGET: Stop UFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the UFS filesystem from using iget() and read_inode(). Replace ufs_read_inode() with ufs_iget(), and call that instead of iget(). ufs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. ufs_fill_super() returns any error incur

[PATCH 22/30] IGET: Stop PROCFS from using iget() and read_inode()

2007-10-01 Thread David Howells
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 ++---

[PATCH 24/30] IGET: Stop ROMFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the ROMFS filesystem from using iget() and read_inode(). Replace romfs_read_inode() with romfs_iget(), and call that instead of iget(). romfs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. romfs_fill_super() returns any e

[PATCH 23/30] IGET: Stop QNX4 from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the QNX4 filesystem from using iget() and read_inode(). Replace qnx4_read_inode() with qnx4_iget(), and call that instead of iget(). qnx4_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. qnx4_fill_super() returns any error

[PATCH 21/30] IGET: Stop the MINIX filesystem from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the MINIX filesystem from using iget() and read_inode(). Replace minix_read_inode() with minix_iget(), and call that instead of iget(). minix_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. minix_fill_super() returns any e

[PATCH 20/30] IGET: Stop JFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the JFS filesystem from using iget() and read_inode(). Replace jfs_read_inode() with jfs_iget(), and call that instead of iget(). jfs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. jfs_fill_super() returns any error incur

[PATCH 19/30] IGET: Stop JFFS2 from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the JFFS2 filesystem from using iget() and read_inode(). Replace jffs2_read_inode() with jffs2_iget(), and call that instead of iget(). jffs2_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. jffs2_do_fill_super() returns an

[PATCH 17/30] IGET: Stop HFSPLUS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the HFSPLUS filesystem from using iget() and read_inode(). Replace hfsplus_read_inode() with hfsplus_iget(), and call that instead of iget(). hfsplus_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. hfsplus_fill_super() ret

[PATCH 18/30] IGET: Stop ISOFS from using read_inode()

2007-10-01 Thread David Howells
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 --gi

[PATCH 15/30] IGET: Stop FreeVXFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the FreeVXFS filesystem from using iget() and read_inode(). Replace vxfs_read_inode() with vxfs_iget(), and call that instead of iget(). vxfs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. vxfs_fill_super() returns any er

[PATCH 16/30] IGET: Stop FUSE from using iget() and read_inode()

2007-10-01 Thread David Howells
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 --- a/

[PATCH 13/30] IGET: Stop EXT4 from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the EXT4 filesystem from using iget() and read_inode(). Replace ext4_read_inode() with ext4_iget(), and call that instead of iget(). ext4_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. ext4_fill_super() returns any error

[PATCH 14/30] IGET: Stop FAT from using iget() and read_inode()

2007-10-01 Thread David Howells
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 inde

[PATCH 12/30] IGET: Stop EXT3 from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the EXT3 filesystem from using iget() and read_inode(). Replace ext3_read_inode() with ext3_iget(), and call that instead of iget(). ext3_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. ext3_fill_super() returns any error

[PATCH 11/30] IGET: Stop EXT2 from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the EXT2 filesystem from using iget() and read_inode(). Replace ext2_read_inode() with ext2_iget(), and call that instead of iget(). ext2_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. ext2_fill_super() returns any error

[PATCH 09/30] IGET: Stop CIFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the CIFS filesystem from using iget() and read_inode(). Replace cifs_read_inode() with cifs_iget(), and call that instead of iget(). cifs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. cifs_read_super() now returns any er

[PATCH 10/30] IGET: Stop EFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the EFS filesystem from using iget() and read_inode(). Replace efs_read_inode() with efs_iget(), and call that instead of iget(). efs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. efs_fill_super() returns any error incur

[PATCH 07/30] IGET: Stop BEFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the BEFS filesystem from using iget() and read_inode(). Replace befs_read_inode() with befs_iget(), and call that instead of iget(). befs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. befs_fill_super() returns any error

[PATCH 08/30] IGET: Stop BFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the BFS filesystem from using iget() and read_inode(). Replace bfs_read_inode() with bfs_iget(), and call that instead of iget(). bfs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. bfs_fill_super() returns any error incur

[PATCH 05/30] IGET: Stop AFFS from using iget() and read_inode()

2007-10-01 Thread David Howells
Stop the AFFS filesystem from using iget() and read_inode(). Replace affs_read_inode() with affs_iget(), and call that instead of iget(). affs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. affs_fill_super() returns any error

[PATCH 06/30] IGET: Stop autofs from using iget() and read_inode()

2007-10-01 Thread David Howells
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 Howells

[PATCH 04/30] IGET: Mark iget() and read_inode() as being obsolete

2007-10-01 Thread David Howells
Mark iget() and read_inode() as being obsolete and remove references to them from the documentation. Typically a filesystem will be modified such that the read_inode function becomes an internal iget function, for example the following: void thingyfs_read_inode(struct inode *inode)

[PATCH 02/30] IGET: Use iget_failed() in AFS

2007-10-01 Thread David Howells
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.

[PATCH 03/30] IGET: Use iget_failed() in GFS2

2007-10-01 Thread David Howells
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/ino

[PATCH 01/30] IGET: Introduce a function to register iget failure

2007-10-01 Thread David Howells
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

[PATCH 00/30] Remove iget() and read_inode()

2007-10-01 Thread David Howells
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() t