| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dlm_posix_get fills out the relevant fields in the file_lock before
returning when there is a lock conflict, but doesn't clean out any of
the other fields in the file_lock.
When nfsd does a NFSv4 lockt call, it sets the fl_lmops to
nfsd_posix_mng_ops before calling the lower fs. When the lock comes back
after testing a lock on GFS2, it still has that field set. This confuses
nfsd into thinking that the file_lock is a nfsd4 lock.
Fix this by making DLM reinitialize the file_lock before copying the
fields from the conflicting lock.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We should use the original copy of the file_lock, fl, instead
of the copy, flc in the lockd notify callback. The range in flc has
been modified by posix_lock_file(), so it will not match a copy of the
lock in lockd.
Signed-off-by: David Teigland <teigland@redhat.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since ->acquire_dquot and ->release_dquot callbacks aren't called under
dqptr_sem anymore, we don't have to start a transaction and obtain locks
so early. So we can just remove all this complicated stuff.
Signed-off-by: Jan Kara <jack@suse.cz>
Acked-by: Mark Fasheh <mfasheh@suse.de>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We implement dqget() and dqput() that need neither dqonoff_mutex nor dqptr_sem.
Then move dqget() and dqput() calls so that they are not called from under
dqptr_sem. This is important because filesystem callbacks aren't called from
under dqptr_sem which used to cause *lots* of problems with lock ranking
(and with OCFS2 they became close to unsolvable).
The patch also removes two functions which were introduced solely because OCFS2
needed them to cope with the old locking scheme. As time showed, they were not
enough for OCFS2 anyway and it would be unnecessary work to adapt them to the
new locking scheme in which they aren't needed. As a result OCFS2 needs the
following patch to compile properly with quotas. Sorry to any bisecters which
hit this in advance.
Signed-off-by: Jan Kara <jack@suse.cz>
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* 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()
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some sysfs binary files don't like having 0 passed to them as a size.
Fix this up at the root by just returning to the vfs if userspace asks
us for a zero sized buffer.
Thanks to Pavel Roskin for pointing this out.
Reported-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
...
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| |/ /
| | |
| | |
| | | |
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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()
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Clean up error handling for the whole of fuse_fill_super() function.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
|