linux/fs/lockd
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
..
clntlock.c NLM: Introduce an arguments structure for nlmclnt_init() 2008-01-30 02:06:07 -05:00
clntproc.c lockd: dont return EAGAIN for a permanent error 2008-07-25 10:53:47 -07:00
host.c Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6 2008-04-24 11:46:16 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mon.c lockd: introduce new function to encode private argument in SM_MON requests 2008-03-19 18:01:10 -04:00
svc4proc.c Merge branch 'for-2.6.27' of git://linux-nfs.org/~bfields/linux 2008-07-20 21:21:46 -07:00
svc.c lockd: close potential race with rapid lockd_up/lockd_down cycle 2008-06-23 13:02:50 -04:00
svclock.c locks: add special return value for asynchronous locks 2008-07-25 10:53:47 -07:00
svcproc.c Merge branch 'for-2.6.27' of git://linux-nfs.org/~bfields/linux 2008-07-20 21:21:46 -07:00
svcshare.c lockd: fix sparse warning in svcshare.c 2008-04-23 16:13:39 -04:00
svcsubs.c lockd: Pass "struct sockaddr *" to new failover-by-IP function 2008-07-15 16:11:29 -04:00
xdr4.c LOCKD: Convert printk's to dprintk's in lockd XDR routines 2007-10-09 17:17:12 -04:00
xdr.c lockd: Eliminate harmless mixed sign comparison in nlmdbg_cookie2a() 2008-01-30 02:06:02 -05:00