On Mar 16, 2012, at 11:12 AM, Andy Adamson wrote: > On Thu, Mar 15, 2012 at 8:27 PM, Myklebust, Trond > <Trond.Myklebust@xxxxxxxxxx> wrote: >> On Thu, 2012-03-15 at 14:40 -0400, andros@xxxxxxxxxx wrote: >>> From: Andy Adamson <andros@xxxxxxxxxx> >>> >>> Register a new filelayout DS rpc_action callback for sleeping on the fore >>> channel slot table waitq. Avoid any additional RPC FSM states >>> (such as timeout) when waking up to an invalid deviceid and reset >>> the task for io to the MDS. >> >> Why can't you simply put this call to filelayout_write_sleepon_cb in >> filelayout_write_prepare (before calling nfs41_setup_sequence())? > > I guess I can. Will do. Actually, I that won't work. > > -->Andy > >> >> Since nothing is going to change the task->tk_action if >> nfs41_setup_sequence() puts you to sleep, what value does the callback >> add? The rpc_action remains rpc_call_prepare. But! We want the tasks coming off the failed DS fore channel slot table queue to be redirected to the MDS nfs_XXX_prepare, not the filelayout_xxx_prepare. Note that filelayout_reset_read and filelayout_reset_write set the data->ds_clp to NULL which makes the call to nfs41_setup_sequence() in filelayout_write/read_prepare Oops….. So, I'll keep this patch as is. -->Andy > >> Linux NFS client maintainer >> >> NetApp >> Trond.Myklebust@xxxxxxxxxx >> www.netapp.com >> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html