linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state()
@ 2018-09-11 20:23 schumaker.anna
  2018-09-11 20:23 ` [PATCH 2/3] NFS: Reduce indentation of the switch statement in nfs4_reclaim_open_state() schumaker.anna
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: schumaker.anna @ 2018-09-11 20:23 UTC (permalink / raw)
  To: Trond.Myklebust, linux-nfs

From: Anna Schumaker <Anna.Schumaker@Netapp.com>

Moving all of this into a new function removes the need for cramped
indentation, making the code overall easier to look at.   I also take
this chance to switch copy recovery over to using
nfs4_stateid_match_other()

Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
---
 fs/nfs/nfs4state.c | 83 ++++++++++++++++++++++++++--------------------
 1 file changed, 47 insertions(+), 36 deletions(-)

diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 3df0eb52da1c..aa46a3216d60 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1547,10 +1547,51 @@ static int nfs4_reclaim_locks(struct nfs4_state *state, const struct nfs4_state_
 	return status;
 }
 
+static int __nfs4_reclaim_open_state(struct nfs4_state_owner *sp, struct nfs4_state *state,
+				     const struct nfs4_state_recovery_ops *ops)
+{
+	struct nfs4_lock_state *lock;
+	int status;
+
+	status = ops->recover_open(sp, state);
+	if (status < 0)
+		return status;
+
+	status = nfs4_reclaim_locks(state, ops);
+	if (status < 0)
+		return status;
+
+	if (!test_bit(NFS_DELEGATED_STATE, &state->flags)) {
+		spin_lock(&state->state_lock);
+		list_for_each_entry(lock, &state->lock_states, ls_locks) {
+			if (!test_bit(NFS_LOCK_INITIALIZED, &lock->ls_flags))
+				pr_warn_ratelimited("NFS: %s: Lock reclaim failed!\n", __func__);
+		}
+		spin_unlock(&state->state_lock);
+	}
+
+#ifdef CONFIG_NFS_V4_2
+	if (test_bit(NFS_CLNT_DST_SSC_COPY_STATE, &state->flags)) {
+		struct nfs4_copy_state *copy;
+		spin_lock(&sp->so_server->nfs_client->cl_lock);
+		list_for_each_entry(copy, &sp->so_server->ss_copies, copies) {
+			if (nfs4_stateid_match_other(&state->stateid, &copy->parent_state->stateid))
+				continue;
+			copy->flags = 1;
+			complete(&copy->completion);
+			break;
+		}
+		spin_unlock(&sp->so_server->nfs_client->cl_lock);
+	}
+#endif /* CONFIG_NFS_V4_2 */
+
+	clear_bit(NFS_STATE_RECLAIM_NOGRACE, &state->flags);
+	return status;
+}
+
 static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs4_state_recovery_ops *ops)
 {
 	struct nfs4_state *state;
-	struct nfs4_lock_state *lock;
 	int status = 0;
 
 	/* Note: we rely on the sp->so_states list being ordered 
@@ -1573,43 +1614,13 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
 			continue;
 		atomic_inc(&state->count);
 		spin_unlock(&sp->so_lock);
-		status = ops->recover_open(sp, state);
+		status = __nfs4_reclaim_open_state(sp, state, ops);
 		if (status >= 0) {
-			status = nfs4_reclaim_locks(state, ops);
-			if (status >= 0) {
-				if (!test_bit(NFS_DELEGATED_STATE, &state->flags)) {
-					spin_lock(&state->state_lock);
-					list_for_each_entry(lock, &state->lock_states, ls_locks) {
-						if (!test_bit(NFS_LOCK_INITIALIZED, &lock->ls_flags))
-							pr_warn_ratelimited("NFS: "
-									    "%s: Lock reclaim "
-									    "failed!\n", __func__);
-					}
-					spin_unlock(&state->state_lock);
-				}
-				clear_bit(NFS_STATE_RECLAIM_NOGRACE,
-					&state->flags);
-#ifdef CONFIG_NFS_V4_2
-				if (test_bit(NFS_CLNT_DST_SSC_COPY_STATE, &state->flags)) {
-					struct nfs4_copy_state *copy;
-
-					spin_lock(&sp->so_server->nfs_client->cl_lock);
-					list_for_each_entry(copy, &sp->so_server->ss_copies, copies) {
-						if (memcmp(&state->stateid.other, &copy->parent_state->stateid.other, NFS4_STATEID_SIZE))
-							continue;
-						copy->flags = 1;
-						complete(&copy->completion);
-						printk("AGLO: server rebooted waking up the copy\n");
-						break;
-					}
-					spin_unlock(&sp->so_server->nfs_client->cl_lock);
-				}
-#endif /* CONFIG_NFS_V4_2 */
-				nfs4_put_open_state(state);
-				spin_lock(&sp->so_lock);
-				goto restart;
-			}
+			nfs4_put_open_state(state);
+			spin_lock(&sp->so_lock);
+			goto restart;
 		}
+
 		switch (status) {
 			default:
 				printk(KERN_ERR "NFS: %s: unhandled error %d\n",
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] NFS: Reduce indentation of the switch statement in nfs4_reclaim_open_state()
  2018-09-11 20:23 [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state() schumaker.anna
@ 2018-09-11 20:23 ` schumaker.anna
  2018-09-11 20:23 ` [PATCH 3/3] NFS: Reduce indentation of nfs4_recovery_handle_error() schumaker.anna
  2018-09-18 20:19 ` [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state() Trond Myklebust
  2 siblings, 0 replies; 4+ messages in thread
From: schumaker.anna @ 2018-09-11 20:23 UTC (permalink / raw)
  To: Trond.Myklebust, linux-nfs

From: Anna Schumaker <Anna.Schumaker@Netapp.com>

Most places in the kernel tend to line up cases with the switch to
reduce indentation, so move this over to match that style.
Additionally, I handle the (status >= 0) case in the switch so that we
only "goto restart" from a single place after error handling.

Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
---
 fs/nfs/nfs4state.c | 70 ++++++++++++++++++++++------------------------
 1 file changed, 33 insertions(+), 37 deletions(-)

diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index aa46a3216d60..8a399dc17e19 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1615,46 +1615,42 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
 		atomic_inc(&state->count);
 		spin_unlock(&sp->so_lock);
 		status = __nfs4_reclaim_open_state(sp, state, ops);
-		if (status >= 0) {
-			nfs4_put_open_state(state);
-			spin_lock(&sp->so_lock);
-			goto restart;
-		}
 
 		switch (status) {
-			default:
-				printk(KERN_ERR "NFS: %s: unhandled error %d\n",
-					__func__, status);
-				/* Fall through */
-			case -ENOENT:
-			case -ENOMEM:
-			case -EACCES:
-			case -EROFS:
-			case -EIO:
-			case -ESTALE:
-				/* Open state on this file cannot be recovered */
-				nfs4_state_mark_recovery_failed(state, status);
-				break;
-			case -EAGAIN:
-				ssleep(1);
-				/* Fall through */
-			case -NFS4ERR_ADMIN_REVOKED:
-			case -NFS4ERR_STALE_STATEID:
-			case -NFS4ERR_OLD_STATEID:
-			case -NFS4ERR_BAD_STATEID:
-			case -NFS4ERR_RECLAIM_BAD:
-			case -NFS4ERR_RECLAIM_CONFLICT:
-				nfs4_state_mark_reclaim_nograce(sp->so_server->nfs_client, state);
+		default:
+			if (status >= 0)
 				break;
-			case -NFS4ERR_EXPIRED:
-			case -NFS4ERR_NO_GRACE:
-				nfs4_state_mark_reclaim_nograce(sp->so_server->nfs_client, state);
-			case -NFS4ERR_STALE_CLIENTID:
-			case -NFS4ERR_BADSESSION:
-			case -NFS4ERR_BADSLOT:
-			case -NFS4ERR_BAD_HIGH_SLOT:
-			case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
-				goto out_err;
+			printk(KERN_ERR "NFS: %s: unhandled error %d\n", __func__, status);
+			/* Fall through */
+		case -ENOENT:
+		case -ENOMEM:
+		case -EACCES:
+		case -EROFS:
+		case -EIO:
+		case -ESTALE:
+			/* Open state on this file cannot be recovered */
+			nfs4_state_mark_recovery_failed(state, status);
+			break;
+		case -EAGAIN:
+			ssleep(1);
+			/* Fall through */
+		case -NFS4ERR_ADMIN_REVOKED:
+		case -NFS4ERR_STALE_STATEID:
+		case -NFS4ERR_OLD_STATEID:
+		case -NFS4ERR_BAD_STATEID:
+		case -NFS4ERR_RECLAIM_BAD:
+		case -NFS4ERR_RECLAIM_CONFLICT:
+			nfs4_state_mark_reclaim_nograce(sp->so_server->nfs_client, state);
+			break;
+		case -NFS4ERR_EXPIRED:
+		case -NFS4ERR_NO_GRACE:
+			nfs4_state_mark_reclaim_nograce(sp->so_server->nfs_client, state);
+		case -NFS4ERR_STALE_CLIENTID:
+		case -NFS4ERR_BADSESSION:
+		case -NFS4ERR_BADSLOT:
+		case -NFS4ERR_BAD_HIGH_SLOT:
+		case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
+			goto out_err;
 		}
 		nfs4_put_open_state(state);
 		spin_lock(&sp->so_lock);
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] NFS: Reduce indentation of nfs4_recovery_handle_error()
  2018-09-11 20:23 [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state() schumaker.anna
  2018-09-11 20:23 ` [PATCH 2/3] NFS: Reduce indentation of the switch statement in nfs4_reclaim_open_state() schumaker.anna
@ 2018-09-11 20:23 ` schumaker.anna
  2018-09-18 20:19 ` [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state() Trond Myklebust
  2 siblings, 0 replies; 4+ messages in thread
From: schumaker.anna @ 2018-09-11 20:23 UTC (permalink / raw)
  To: Trond.Myklebust, linux-nfs

From: Anna Schumaker <Anna.Schumaker@Netapp.com>

This is to match kernel coding style for switch statements.

Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
---
 fs/nfs/nfs4state.c | 64 +++++++++++++++++++++++-----------------------
 1 file changed, 32 insertions(+), 32 deletions(-)

diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 8a399dc17e19..816f526bbcb3 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1800,38 +1800,38 @@ static void nfs4_state_start_reclaim_nograce(struct nfs_client *clp)
 static int nfs4_recovery_handle_error(struct nfs_client *clp, int error)
 {
 	switch (error) {
-		case 0:
-			break;
-		case -NFS4ERR_CB_PATH_DOWN:
-			nfs40_handle_cb_pathdown(clp);
-			break;
-		case -NFS4ERR_NO_GRACE:
-			nfs4_state_end_reclaim_reboot(clp);
-			break;
-		case -NFS4ERR_STALE_CLIENTID:
-			set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
-			nfs4_state_start_reclaim_reboot(clp);
-			break;
-		case -NFS4ERR_EXPIRED:
-			set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
-			nfs4_state_start_reclaim_nograce(clp);
-			break;
-		case -NFS4ERR_BADSESSION:
-		case -NFS4ERR_BADSLOT:
-		case -NFS4ERR_BAD_HIGH_SLOT:
-		case -NFS4ERR_DEADSESSION:
-		case -NFS4ERR_SEQ_FALSE_RETRY:
-		case -NFS4ERR_SEQ_MISORDERED:
-			set_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state);
-			/* Zero session reset errors */
-			break;
-		case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
-			set_bit(NFS4CLNT_BIND_CONN_TO_SESSION, &clp->cl_state);
-			break;
-		default:
-			dprintk("%s: failed to handle error %d for server %s\n",
-					__func__, error, clp->cl_hostname);
-			return error;
+	case 0:
+		break;
+	case -NFS4ERR_CB_PATH_DOWN:
+		nfs40_handle_cb_pathdown(clp);
+		break;
+	case -NFS4ERR_NO_GRACE:
+		nfs4_state_end_reclaim_reboot(clp);
+		break;
+	case -NFS4ERR_STALE_CLIENTID:
+		set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
+		nfs4_state_start_reclaim_reboot(clp);
+		break;
+	case -NFS4ERR_EXPIRED:
+		set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
+		nfs4_state_start_reclaim_nograce(clp);
+		break;
+	case -NFS4ERR_BADSESSION:
+	case -NFS4ERR_BADSLOT:
+	case -NFS4ERR_BAD_HIGH_SLOT:
+	case -NFS4ERR_DEADSESSION:
+	case -NFS4ERR_SEQ_FALSE_RETRY:
+	case -NFS4ERR_SEQ_MISORDERED:
+		set_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state);
+		/* Zero session reset errors */
+		break;
+	case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
+		set_bit(NFS4CLNT_BIND_CONN_TO_SESSION, &clp->cl_state);
+		break;
+	default:
+		dprintk("%s: failed to handle error %d for server %s\n",
+				__func__, error, clp->cl_hostname);
+		return error;
 	}
 	dprintk("%s: handled error %d for server %s\n", __func__, error,
 			clp->cl_hostname);
-- 
2.18.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state()
  2018-09-11 20:23 [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state() schumaker.anna
  2018-09-11 20:23 ` [PATCH 2/3] NFS: Reduce indentation of the switch statement in nfs4_reclaim_open_state() schumaker.anna
  2018-09-11 20:23 ` [PATCH 3/3] NFS: Reduce indentation of nfs4_recovery_handle_error() schumaker.anna
@ 2018-09-18 20:19 ` Trond Myklebust
  2 siblings, 0 replies; 4+ messages in thread
From: Trond Myklebust @ 2018-09-18 20:19 UTC (permalink / raw)
  To: linux-nfs, schumaker.anna

T24gVHVlLCAyMDE4LTA5LTExIGF0IDE2OjIzIC0wNDAwLCBzY2h1bWFrZXIuYW5uYUBnbWFpbC5j
b20gd3JvdGU6DQo+IEZyb206IEFubmEgU2NodW1ha2VyIDxBbm5hLlNjaHVtYWtlckBOZXRhcHAu
Y29tPg0KPiANCj4gTW92aW5nIGFsbCBvZiB0aGlzIGludG8gYSBuZXcgZnVuY3Rpb24gcmVtb3Zl
cyB0aGUgbmVlZCBmb3IgY3JhbXBlZA0KPiBpbmRlbnRhdGlvbiwgbWFraW5nIHRoZSBjb2RlIG92
ZXJhbGwgZWFzaWVyIHRvIGxvb2sgYXQuICAgSSBhbHNvIHRha2UNCj4gdGhpcyBjaGFuY2UgdG8g
c3dpdGNoIGNvcHkgcmVjb3Zlcnkgb3ZlciB0byB1c2luZw0KPiBuZnM0X3N0YXRlaWRfbWF0Y2hf
b3RoZXIoKQ0KPiANCj4gU2lnbmVkLW9mZi1ieTogQW5uYSBTY2h1bWFrZXIgPEFubmEuU2NodW1h
a2VyQE5ldGFwcC5jb20+DQo+IC0tLQ0KPiAgZnMvbmZzL25mczRzdGF0ZS5jIHwgODMgKysrKysr
KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0NCj4gIDEgZmlsZSBj
aGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n
aXQgYS9mcy9uZnMvbmZzNHN0YXRlLmMgYi9mcy9uZnMvbmZzNHN0YXRlLmMNCj4gaW5kZXggM2Rm
MGViNTJkYTFjLi5hYTQ2YTMyMTZkNjAgMTAwNjQ0DQo+IC0tLSBhL2ZzL25mcy9uZnM0c3RhdGUu
Yw0KPiArKysgYi9mcy9uZnMvbmZzNHN0YXRlLmMNCj4gQEAgLTE1NDcsMTAgKzE1NDcsNTEgQEAg
c3RhdGljIGludCBuZnM0X3JlY2xhaW1fbG9ja3Moc3RydWN0DQo+IG5mczRfc3RhdGUgKnN0YXRl
LCBjb25zdCBzdHJ1Y3QgbmZzNF9zdGF0ZV8NCj4gIAlyZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiAg
DQo+ICtzdGF0aWMgaW50IF9fbmZzNF9yZWNsYWltX29wZW5fc3RhdGUoc3RydWN0IG5mczRfc3Rh
dGVfb3duZXIgKnNwLA0KPiBzdHJ1Y3QgbmZzNF9zdGF0ZSAqc3RhdGUsDQo+ICsJCQkJICAgICBj
b25zdCBzdHJ1Y3QNCj4gbmZzNF9zdGF0ZV9yZWNvdmVyeV9vcHMgKm9wcykNCj4gK3sNCj4gKwlz
dHJ1Y3QgbmZzNF9sb2NrX3N0YXRlICpsb2NrOw0KPiArCWludCBzdGF0dXM7DQo+ICsNCj4gKwlz
dGF0dXMgPSBvcHMtPnJlY292ZXJfb3BlbihzcCwgc3RhdGUpOw0KPiArCWlmIChzdGF0dXMgPCAw
KQ0KPiArCQlyZXR1cm4gc3RhdHVzOw0KPiArDQo+ICsJc3RhdHVzID0gbmZzNF9yZWNsYWltX2xv
Y2tzKHN0YXRlLCBvcHMpOw0KPiArCWlmIChzdGF0dXMgPCAwKQ0KPiArCQlyZXR1cm4gc3RhdHVz
Ow0KPiArDQo+ICsJaWYgKCF0ZXN0X2JpdChORlNfREVMRUdBVEVEX1NUQVRFLCAmc3RhdGUtPmZs
YWdzKSkgew0KPiArCQlzcGluX2xvY2soJnN0YXRlLT5zdGF0ZV9sb2NrKTsNCj4gKwkJbGlzdF9m
b3JfZWFjaF9lbnRyeShsb2NrLCAmc3RhdGUtPmxvY2tfc3RhdGVzLA0KPiBsc19sb2Nrcykgew0K
PiArCQkJaWYgKCF0ZXN0X2JpdChORlNfTE9DS19JTklUSUFMSVpFRCwgJmxvY2stDQo+ID5sc19m
bGFncykpDQo+ICsJCQkJcHJfd2Fybl9yYXRlbGltaXRlZCgiTkZTOiAlczogTG9jaw0KPiByZWNs
YWltIGZhaWxlZCFcbiIsIF9fZnVuY19fKTsNCj4gKwkJfQ0KPiArCQlzcGluX3VubG9jaygmc3Rh
dGUtPnN0YXRlX2xvY2spOw0KPiArCX0NCj4gKw0KPiArI2lmZGVmIENPTkZJR19ORlNfVjRfMg0K
PiArCWlmICh0ZXN0X2JpdChORlNfQ0xOVF9EU1RfU1NDX0NPUFlfU1RBVEUsICZzdGF0ZS0+Zmxh
Z3MpKSB7DQo+ICsJCXN0cnVjdCBuZnM0X2NvcHlfc3RhdGUgKmNvcHk7DQo+ICsJCXNwaW5fbG9j
aygmc3AtPnNvX3NlcnZlci0+bmZzX2NsaWVudC0+Y2xfbG9jayk7DQo+ICsJCWxpc3RfZm9yX2Vh
Y2hfZW50cnkoY29weSwgJnNwLT5zb19zZXJ2ZXItPnNzX2NvcGllcywNCj4gY29waWVzKSB7DQo+
ICsJCQlpZiAobmZzNF9zdGF0ZWlkX21hdGNoX290aGVyKCZzdGF0ZS0+c3RhdGVpZCwNCj4gJmNv
cHktPnBhcmVudF9zdGF0ZS0+c3RhdGVpZCkpDQo+ICsJCQkJY29udGludWU7DQo+ICsJCQljb3B5
LT5mbGFncyA9IDE7DQo+ICsJCQljb21wbGV0ZSgmY29weS0+Y29tcGxldGlvbik7DQo+ICsJCQli
cmVhazsNCj4gKwkJfQ0KPiArCQlzcGluX3VubG9jaygmc3AtPnNvX3NlcnZlci0+bmZzX2NsaWVu
dC0+Y2xfbG9jayk7DQo+ICsJfQ0KPiArI2VuZGlmIC8qIENPTkZJR19ORlNfVjRfMiAqLw0KDQpB
cHBsaWVkLCBidXQgY291bGQgeW91IHBsZWFzZSBmb2xsb3cgdXAgd2l0aCBhIHNlcGFyYXRlIHBh
dGNoIHRoYXQNCm1vdmVzIHRoaXMgI2lmZGVmIHNlY3Rpb24gaW50byBhIHNlcGFyYXRlIGZ1bmN0
aW9uPyBUaGF0IHdvdWxkIGhlbHANCndpdGggcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuDQoNCj4g
Kw0KPiArCWNsZWFyX2JpdChORlNfU1RBVEVfUkVDTEFJTV9OT0dSQUNFLCAmc3RhdGUtPmZsYWdz
KTsNCj4gKwlyZXR1cm4gc3RhdHVzOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50IG5mczRfcmVj
bGFpbV9vcGVuX3N0YXRlKHN0cnVjdCBuZnM0X3N0YXRlX293bmVyICpzcCwNCj4gY29uc3Qgc3Ry
dWN0IG5mczRfc3RhdGVfcmVjb3Zlcnlfb3BzICpvcHMpDQo+ICB7DQo+ICAJc3RydWN0IG5mczRf
c3RhdGUgKnN0YXRlOw0KPiAtCXN0cnVjdCBuZnM0X2xvY2tfc3RhdGUgKmxvY2s7DQo+ICAJaW50
IHN0YXR1cyA9IDA7DQo+ICANCj4gIAkvKiBOb3RlOiB3ZSByZWx5IG9uIHRoZSBzcC0+c29fc3Rh
dGVzIGxpc3QgYmVpbmcgb3JkZXJlZCANCj4gQEAgLTE1NzMsNDMgKzE2MTQsMTMgQEAgc3RhdGlj
IGludCBuZnM0X3JlY2xhaW1fb3Blbl9zdGF0ZShzdHJ1Y3QNCj4gbmZzNF9zdGF0ZV9vd25lciAq
c3AsIGNvbnN0IHN0cnVjdCBuZnMNCj4gIAkJCWNvbnRpbnVlOw0KPiAgCQlhdG9taWNfaW5jKCZz
dGF0ZS0+Y291bnQpOw0KPiAgCQlzcGluX3VubG9jaygmc3AtPnNvX2xvY2spOw0KPiAtCQlzdGF0
dXMgPSBvcHMtPnJlY292ZXJfb3BlbihzcCwgc3RhdGUpOw0KPiArCQlzdGF0dXMgPSBfX25mczRf
cmVjbGFpbV9vcGVuX3N0YXRlKHNwLCBzdGF0ZSwgb3BzKTsNCj4gIAkJaWYgKHN0YXR1cyA+PSAw
KSB7DQo+IC0JCQlzdGF0dXMgPSBuZnM0X3JlY2xhaW1fbG9ja3Moc3RhdGUsIG9wcyk7DQo+IC0J
CQlpZiAoc3RhdHVzID49IDApIHsNCj4gLQkJCQlpZiAoIXRlc3RfYml0KE5GU19ERUxFR0FURURf
U1RBVEUsDQo+ICZzdGF0ZS0+ZmxhZ3MpKSB7DQo+IC0JCQkJCXNwaW5fbG9jaygmc3RhdGUtPnN0
YXRlX2xvY2spOw0KPiAtCQkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGxvY2ssDQo+ICZzdGF0ZS0+
bG9ja19zdGF0ZXMsIGxzX2xvY2tzKSB7DQo+IC0JCQkJCQlpZg0KPiAoIXRlc3RfYml0KE5GU19M
T0NLX0lOSVRJQUxJWkVELCAmbG9jay0+bHNfZmxhZ3MpKQ0KPiAtCQkJCQkJCXByX3dhcm5fcmF0
ZWxpbQ0KPiBpdGVkKCJORlM6ICINCj4gLQkJCQkJCQkJCQ0KPiAgICAgIiVzOiBMb2NrIHJlY2xh
aW0gIg0KPiAtCQkJCQkJCQkJDQo+ICAgICAiZmFpbGVkIVxuIiwgX19mdW5jX18pOw0KPiAtCQkJ
CQl9DQo+IC0JCQkJCXNwaW5fdW5sb2NrKCZzdGF0ZS0NCj4gPnN0YXRlX2xvY2spOw0KPiAtCQkJ
CX0NCj4gLQkJCQljbGVhcl9iaXQoTkZTX1NUQVRFX1JFQ0xBSU1fTk9HUkFDRSwNCj4gLQkJCQkJ
JnN0YXRlLT5mbGFncyk7DQo+IC0jaWZkZWYgQ09ORklHX05GU19WNF8yDQo+IC0JCQkJaWYNCj4g
KHRlc3RfYml0KE5GU19DTE5UX0RTVF9TU0NfQ09QWV9TVEFURSwgJnN0YXRlLT5mbGFncykpIHsN
Cj4gLQkJCQkJc3RydWN0IG5mczRfY29weV9zdGF0ZSAqY29weTsNCj4gLQ0KPiAtCQkJCQlzcGlu
X2xvY2soJnNwLT5zb19zZXJ2ZXItDQo+ID5uZnNfY2xpZW50LT5jbF9sb2NrKTsNCj4gLQkJCQkJ
bGlzdF9mb3JfZWFjaF9lbnRyeShjb3B5LCAmc3AtDQo+ID5zb19zZXJ2ZXItPnNzX2NvcGllcywg
Y29waWVzKSB7DQo+IC0JCQkJCQlpZiAobWVtY21wKCZzdGF0ZS0NCj4gPnN0YXRlaWQub3RoZXIs
ICZjb3B5LT5wYXJlbnRfc3RhdGUtPnN0YXRlaWQub3RoZXIsDQo+IE5GUzRfU1RBVEVJRF9TSVpF
KSkNCj4gLQkJCQkJCQljb250aW51ZTsNCj4gLQkJCQkJCWNvcHktPmZsYWdzID0gMTsNCj4gLQkJ
CQkJCWNvbXBsZXRlKCZjb3B5LQ0KPiA+Y29tcGxldGlvbik7DQo+IC0JCQkJCQlwcmludGsoIkFH
TE86IHNlcnZlcg0KPiByZWJvb3RlZCB3YWtpbmcgdXAgdGhlIGNvcHlcbiIpOw0KPiAtCQkJCQkJ
YnJlYWs7DQo+IC0JCQkJCX0NCj4gLQkJCQkJc3Bpbl91bmxvY2soJnNwLT5zb19zZXJ2ZXItDQo+
ID5uZnNfY2xpZW50LT5jbF9sb2NrKTsNCj4gLQkJCQl9DQo+IC0jZW5kaWYgLyogQ09ORklHX05G
U19WNF8yICovDQo+IC0JCQkJbmZzNF9wdXRfb3Blbl9zdGF0ZShzdGF0ZSk7DQo+IC0JCQkJc3Bp
bl9sb2NrKCZzcC0+c29fbG9jayk7DQo+IC0JCQkJZ290byByZXN0YXJ0Ow0KPiAtCQkJfQ0KPiAr
CQkJbmZzNF9wdXRfb3Blbl9zdGF0ZShzdGF0ZSk7DQo+ICsJCQlzcGluX2xvY2soJnNwLT5zb19s
b2NrKTsNCj4gKwkJCWdvdG8gcmVzdGFydDsNCj4gIAkJfQ0KPiArDQo+ICAJCXN3aXRjaCAoc3Rh
dHVzKSB7DQo+ICAJCQlkZWZhdWx0Og0KPiAgCQkJCXByaW50ayhLRVJOX0VSUiAiTkZTOiAlczog
dW5oYW5kbGVkDQo+IGVycm9yICVkXG4iLA0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkNUTywgSGFt
bWVyc3BhY2UgSW5jDQo0MzAwIEVsIENhbWlubyBSZWFsLCBTdWl0ZSAxMDUNCkxvcyBBbHRvcywg
Q0EgOTQwMjINCnd3dy5oYW1tZXIuc3BhY2UNCg0KDQo=

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-09-19  1:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-11 20:23 [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state() schumaker.anna
2018-09-11 20:23 ` [PATCH 2/3] NFS: Reduce indentation of the switch statement in nfs4_reclaim_open_state() schumaker.anna
2018-09-11 20:23 ` [PATCH 3/3] NFS: Reduce indentation of nfs4_recovery_handle_error() schumaker.anna
2018-09-18 20:19 ` [PATCH 1/3] NFS: Split out the body of nfs4_reclaim_open_state() Trond Myklebust

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).