Merge branch 'for-2.6.27' of git://linux-nfs.org/~bfields/linux
* 'for-2.6.27' of git://linux-nfs.org/~bfields/linux: (51 commits) nfsd: nfs4xdr.c do-while is not a compound statement nfsd: Use C99 initializers in fs/nfsd/nfs4xdr.c lockd: Pass "struct sockaddr *" to new failover-by-IP function lockd: get host reference in nlmsvc_create_block() instead of callers lockd: minor svclock.c style fixes lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_lock lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_testlock lockd: nlm_release_host() checks for NULL, caller needn't file lock: reorder struct file_lock to save space on 64 bit builds nfsd: take file and mnt write in nfs4_upgrade_open nfsd: document open share bit tracking nfsd: tabulate nfs4 xdr encoding functions nfsd: dprint operation names svcrdma: Change WR context get/put to use the kmem cache svcrdma: Create a kmem cache for the WR contexts svcrdma: Add flush_scheduled_work to module exit function svcrdma: Limit ORD based on client's advertised IRD svcrdma: Remove unused wait q from svcrdma_xprt structure svcrdma: Remove unneeded spin locks from __svc_rdma_free svcrdma: Add dma map count and WARN_ON ...
This commit is contained in:
@@ -129,9 +129,9 @@ nlmsvc_lookup_block(struct nlm_file *file, struct nlm_lock *lock)
|
||||
|
||||
static inline int nlm_cookie_match(struct nlm_cookie *a, struct nlm_cookie *b)
|
||||
{
|
||||
if(a->len != b->len)
|
||||
if (a->len != b->len)
|
||||
return 0;
|
||||
if(memcmp(a->data,b->data,a->len))
|
||||
if (memcmp(a->data, b->data, a->len))
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
@@ -180,6 +180,7 @@ nlmsvc_create_block(struct svc_rqst *rqstp, struct nlm_host *host,
|
||||
struct nlm_block *block;
|
||||
struct nlm_rqst *call = NULL;
|
||||
|
||||
nlm_get_host(host);
|
||||
call = nlm_alloc_call(host);
|
||||
if (call == NULL)
|
||||
return NULL;
|
||||
@@ -358,10 +359,10 @@ nlmsvc_defer_lock_rqst(struct svc_rqst *rqstp, struct nlm_block *block)
|
||||
*/
|
||||
__be32
|
||||
nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file,
|
||||
struct nlm_lock *lock, int wait, struct nlm_cookie *cookie)
|
||||
struct nlm_host *host, struct nlm_lock *lock, int wait,
|
||||
struct nlm_cookie *cookie)
|
||||
{
|
||||
struct nlm_block *block = NULL;
|
||||
struct nlm_host *host;
|
||||
int error;
|
||||
__be32 ret;
|
||||
|
||||
@@ -373,11 +374,6 @@ nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file,
|
||||
(long long)lock->fl.fl_end,
|
||||
wait);
|
||||
|
||||
/* Create host handle for callback */
|
||||
host = nlmsvc_lookup_host(rqstp, lock->caller, lock->len);
|
||||
if (host == NULL)
|
||||
return nlm_lck_denied_nolocks;
|
||||
|
||||
/* Lock file against concurrent access */
|
||||
mutex_lock(&file->f_mutex);
|
||||
/* Get existing block (in case client is busy-waiting)
|
||||
@@ -385,8 +381,7 @@ nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file,
|
||||
*/
|
||||
block = nlmsvc_lookup_block(file, lock);
|
||||
if (block == NULL) {
|
||||
block = nlmsvc_create_block(rqstp, nlm_get_host(host), file,
|
||||
lock, cookie);
|
||||
block = nlmsvc_create_block(rqstp, host, file, lock, cookie);
|
||||
ret = nlm_lck_denied_nolocks;
|
||||
if (block == NULL)
|
||||
goto out;
|
||||
@@ -417,7 +412,7 @@ nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file,
|
||||
lock->fl.fl_flags &= ~FL_SLEEP;
|
||||
|
||||
dprintk("lockd: vfs_lock_file returned %d\n", error);
|
||||
switch(error) {
|
||||
switch (error) {
|
||||
case 0:
|
||||
ret = nlm_granted;
|
||||
goto out;
|
||||
@@ -450,7 +445,6 @@ nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file,
|
||||
out:
|
||||
mutex_unlock(&file->f_mutex);
|
||||
nlmsvc_release_block(block);
|
||||
nlm_release_host(host);
|
||||
dprintk("lockd: nlmsvc_lock returned %u\n", ret);
|
||||
return ret;
|
||||
}
|
||||
@@ -460,8 +454,8 @@ out:
|
||||
*/
|
||||
__be32
|
||||
nlmsvc_testlock(struct svc_rqst *rqstp, struct nlm_file *file,
|
||||
struct nlm_lock *lock, struct nlm_lock *conflock,
|
||||
struct nlm_cookie *cookie)
|
||||
struct nlm_host *host, struct nlm_lock *lock,
|
||||
struct nlm_lock *conflock, struct nlm_cookie *cookie)
|
||||
{
|
||||
struct nlm_block *block = NULL;
|
||||
int error;
|
||||
@@ -479,16 +473,9 @@ nlmsvc_testlock(struct svc_rqst *rqstp, struct nlm_file *file,
|
||||
|
||||
if (block == NULL) {
|
||||
struct file_lock *conf = kzalloc(sizeof(*conf), GFP_KERNEL);
|
||||
struct nlm_host *host;
|
||||
|
||||
if (conf == NULL)
|
||||
return nlm_granted;
|
||||
/* Create host handle for callback */
|
||||
host = nlmsvc_lookup_host(rqstp, lock->caller, lock->len);
|
||||
if (host == NULL) {
|
||||
kfree(conf);
|
||||
return nlm_lck_denied_nolocks;
|
||||
}
|
||||
block = nlmsvc_create_block(rqstp, host, file, lock, cookie);
|
||||
if (block == NULL) {
|
||||
kfree(conf);
|
||||
@@ -897,7 +884,7 @@ nlmsvc_retry_blocked(void)
|
||||
|
||||
if (block->b_when == NLM_NEVER)
|
||||
break;
|
||||
if (time_after(block->b_when,jiffies)) {
|
||||
if (time_after(block->b_when, jiffies)) {
|
||||
timeout = block->b_when - jiffies;
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user