linux/fs/dlm
Miklos Szeredi bde74e4bc6 locks: add special return value for asynchronous locks
Use a special error value FILE_LOCK_DEFERRED to mean that a locking
operation returned asynchronously.  This is returned by

  posix_lock_file() for sleeping locks to mean that the lock has been
  queued on the block list, and will be woken up when it might become
  available and needs to be retried (either fl_lmops->fl_notify() is
  called or fl_wait is woken up).

  f_op->lock() to mean either the above, or that the filesystem will
  call back with fl_lmops->fl_grant() when the result of the locking
  operation is known.  The filesystem can do this for sleeping as well
  as non-sleeping locks.

This is to make sure, that return values of -EAGAIN and -EINPROGRESS by
filesystems are not mistaken to mean an asynchronous locking.

This also makes error handling in fs/locks.c and lockd/svclock.c slightly
cleaner.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: David Teigland <teigland@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-25 10:53:47 -07:00
..
Kconfig
Makefile dlm: move plock code from gfs2 2008-04-21 11:22:28 -05:00
ast.c
ast.h
config.c configfs: Allow ->make_item() and ->make_group() to return detailed errors. 2008-07-17 15:21:29 -07:00
config.h dlm: recover nodes that are removed and re-added 2008-04-21 11:18:01 -05:00
debug_fs.c
dir.c
dir.h
dlm_internal.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm 2008-04-22 13:44:23 -07:00
lock.c dlm: save master info after failed no-queue request 2008-04-21 11:18:01 -05:00
lock.h dlm: make dlm_print_rsb() static 2008-04-21 11:18:01 -05:00
lockspace.c fs: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:54 -07:00
lockspace.h
lowcomms.c dlm: tcp_connect_to_sock should check for -EINVAL, not EINVAL 2008-05-19 15:37:27 -05:00
lowcomms.h
lvb_table.h
main.c dlm: move plock code from gfs2 2008-04-21 11:22:28 -05:00
member.c dlm: recover nodes that are removed and re-added 2008-04-21 11:18:01 -05:00
member.h
memory.c
memory.h
midcomms.c
midcomms.h
netlink.c dlm: section mismatch warning fix 2008-05-19 15:37:27 -05:00
plock.c locks: add special return value for asynchronous locks 2008-07-25 10:53:47 -07:00
rcom.c
rcom.h
recover.c
recover.h
recoverd.c dlm: recover nodes that are removed and re-added 2008-04-21 11:18:01 -05:00
recoverd.h
requestqueue.c
requestqueue.h
user.c dlm-user: BKL pushdown 2008-06-20 14:05:56 -06:00
user.h
util.c
util.h