summaryrefslogtreecommitdiff
path: root/fs
AgeCommit message (Collapse)AuthorFilesLines
2009-01-29epoll: drop max_user_instances and rely only on max_user_watchesDavide Libenzi1-18/+4
Linus suggested to put limits where the money is, and max_user_watches already does that w/out the need of max_user_instances. That has the advantage to mitigate the potential DoS while allowing pretty generous default behavior. Allowing top 4% of low memory (per user) to be allocated in epoll watches, we have: LOMEM MAX_WATCHES (per user) 512MB ~178000 1GB ~356000 2GB ~712000 A box with 512MB of lomem, will meet some challenge in hitting 180K watches, socket buffers math teaches us. No more max_user_instances limits then. Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Cc: Willy Tarreau <w@1wt.eu> Cc: Michael Kerrisk <mtk.manpages@googlemail.com> Cc: Bron Gondwana <brong@fastmail.fm> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-27nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is foundJeff Layton1-1/+0
nfsd4_lockt does a search for a lockstateowner when building the lock struct to test. If one is found, it'll set fl_owner to it. Regardless of whether that happens, it'll also set fl_lmops. Given that this lock is basically a "lightweight" lock that's just used for checking conflicts, setting fl_lmops is probably not appropriate for it. This behavior exposed a bug in DLM's GETLK implementation where it wasn't clearing out the fields in the file_lock before filling in conflicting lock info. While we were able to fix this in DLM, it still seems pointless and dangerous to set the fl_lmops this way when we may have a NULL lockstateowner. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: J. Bruce Fields <bfields@pig.fieldses.org>
2009-01-27nfsd: fix cred leak on every rpcJ. Bruce Fields1-0/+1
Since override_creds() took its own reference on new, we need to release our own reference. (Note the put_cred on the return value puts the *old* value of current->creds, not the new passed-in value). Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2009-01-27nfsd: fix null dereference on error pathJ. Bruce Fields1-0/+2
We're forgetting to check the return value from groups_alloc(). Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
2009-01-26Merge branch 'for-linus' of ↵Linus Torvalds1-2/+4
git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm: dlm: initialize file_lock struct in GETLK before copying conflicting lock dlm: fix plock notify callback to lockd
2009-01-26Merge branch 'for_linus' of ↵Linus Torvalds2-263/+124
git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6 * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6: ocfs2: Remove ocfs2_dquot_initialize() and ocfs2_dquot_drop() quota: Improve locking
2009-01-26Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6Linus Torvalds1-0/+6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: klist.c: bit 0 in pointer can't be used as flag debugfs: introduce stub for debugfs_create_size_t() when DEBUG_FS=n sysfs: fix problems with binary files PNP: fix broken pnp lowercasing for acpi module aliases driver core: Convert '/' to '!' in dev_set_name()
2009-01-26Merge branch 'Kconfig' of ↵Linus Torvalds39-1363/+1284
git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/misc * 'Kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/misc: (36 commits) fs/Kconfig: move 9p out fs/Kconfig: move afs out fs/Kconfig: move coda out fs/Kconfig: move the rest of ncpfs out fs/Kconfig: move smbfs out fs/Kconfig: move sunrpc out fs/Kconfig: move nfsd out fs/Kconfig: move nfs out fs/Kconfig: move ufs out fs/Kconfig: move sysv out fs/Kconfig: move romfs out fs/Kconfig: move qnx4 out fs/Kconfig: move hpfs out fs/Kconfig: move omfs out fs/Kconfig: move minix out fs/Kconfig: move vxfs out fs/Kconfig: move squashfs out fs/Kconfig: move cramfs out fs/Kconfig: move efs out fs/Kconfig: move bfs out ...
2009-01-26inotify: clean up inotify_read and fix locking problemsVegard Nossum1-61/+74
If userspace supplies an invalid pointer to a read() of an inotify instance, the inotify device's event list mutex is unlocked twice. This causes an unbalance which effectively leaves the data structure unprotected, and we can trigger oopses by accessing the inotify instance from different tasks concurrently. The best fix (contributed largely by Linus) is a total rewrite of the function in question: On Thu, Jan 22, 2009 at 7:05 AM, Linus Torvalds wrote: > The thing to notice is that: > > - locking is done in just one place, and there is no question about it > not having an unlock. > > - that whole double-while(1)-loop thing is gone. > > - use multiple functions to make nesting and error handling sane > > - do error testing after doing the things you always need to do, ie do > this: > > mutex_lock(..) > ret = function_call(); > mutex_unlock(..) > > .. test ret here .. > > instead of doing conditional exits with unlocking or freeing. > > So if the code is written in this way, it may still be buggy, but at least > it's not buggy because of subtle "forgot to unlock" or "forgot to free" > issues. > > This _always_ unlocks if it locked, and it always frees if it got a > non-error kevent. Cc: John McCutchan <ttb@tentacle.dhs.org> Cc: Robert Love <rlove@google.com> Cc: <stable@kernel.org> Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-26Merge branch 'for-linus' of ↵Linus Torvalds3-18/+30
git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: fuse: fix poll notify fuse: destroy bdi on umount fuse: fuse_fill_super error handling cleanup fuse: fix missing fput on error fuse: fix NULL deref in fuse_file_alloc()
2009-01-26fuse: fix poll notifyMiklos Szeredi1-4/+9
Move fuse_copy_finish() to before calling fuse_notify_poll_wakeup(). This is not a big issue because fuse_notify_poll_wakeup() should be atomic, but it's cleaner this way, and later uses of notification will need to be able to finish the copying before performing some actions. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2009-01-26fuse: destroy bdi on umountMiklos Szeredi2-2/+3
If a fuse filesystem is unmounted but the device file descriptor remains open and a new mount reuses the old device number, then the mount fails with EEXIST and the following warning is printed in the kernel log: WARNING: at fs/sysfs/dir.c:462 sysfs_add_one+0x35/0x3d() sysfs: duplicate filename '0:15' can not be created The cause is that the bdi belonging to the fuse filesystem was destoryed only after the device file was released. Fix this by calling bdi_destroy() from fuse_put_super() instead. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> CC: stable@kernel.org
2009-01-26fuse: fuse_fill_super error handling cleanupMiklos Szeredi1-18/+19
Clean up error handling for the whole of fuse_fill_super() function. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2009-01-26fuse: fix missing fput on errorMiklos Szeredi1-2/+7
Fix the leaking file reference if allocation or initialization of fuse_conn failed. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> CC: stable@kernel.org
2009-01-26fuse: fix NULL deref in fuse_file_alloc()Dan Carpenter1-1/+1
ff is set to NULL and then dereferenced on line 65. Compile tested only. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> CC: stable@kernel.org
2009-01-22fs/Kconfig: move 9p outAlexey Dobriyan2-11/+11
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move afs outAlexey Dobriyan2-22/+22
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move coda outAlexey Dobriyan2-22/+22
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move the rest of ncpfs outAlexey Dobriyan2-22/+21
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move smbfs outAlexey Dobriyan2-57/+56
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move sunrpc outAlexey Dobriyan1-79/+1
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move nfsd outAlexey Dobriyan2-81/+81
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move nfs outAlexey Dobriyan2-86/+87
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move ufs outAlexey Dobriyan2-44/+44
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move sysv outAlexey Dobriyan2-38/+37
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move romfs outAlexey Dobriyan2-18/+17
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move qnx4 outAlexey Dobriyan2-26/+26
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move hpfs outAlexey Dobriyan2-16/+15
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move omfs outAlexey Dobriyan2-14/+14
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move minix outAlexey Dobriyan2-18/+18
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move vxfs outAlexey Dobriyan2-17/+17
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move squashfs outAlexey Dobriyan2-52/+52
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move cramfs outAlexey Dobriyan2-20/+20
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move efs outAlexey Dobriyan2-16/+15
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move bfs outAlexey Dobriyan2-22/+20
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move befs outAlexey Dobriyan2-27/+27
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move hfs, hfsplus outAlexey Dobriyan3-27/+27
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move ecryptfs outAlexey Dobriyan2-12/+12
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move affs outAlexey Dobriyan2-22/+22
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move adfs outAlexey Dobriyan2-27/+28
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move configfs outAlexey Dobriyan2-11/+12
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move sysfs outAlexey Dobriyan2-24/+24
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move ntfs outAlexey Dobriyan2-79/+79
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move fat outAlexey Dobriyan2-97/+98
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move iso9660, udf outAlexey Dobriyan3-58/+59
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move fuse outAlexey Dobriyan2-16/+16
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move autofs, autofs4 outAlexey Dobriyan3-42/+43
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move btrfs outAlexey Dobriyan2-19/+19
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move ocfs2 outAlexey Dobriyan2-86/+86
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-01-22fs/Kconfig: move jfs outAlexey Dobriyan2-50/+50
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>