----- Original Message ----- > From: "Trond Myklebust" <trondmy@xxxxxxxxxxxxxxx> > To: "Tigran Mkrtchyan" <tigran.mkrtchyan@xxxxxxx> > Cc: linux-nfs@xxxxxxxxxxxxxxx > Sent: Thursday, May 12, 2016 12:25:18 AM > Subject: Re: [PATCH] nfs4: client: do not send empty SETATTR after OPEN_CREATE > On 5/11/16, 18:14, "Tigran Mkrtchyan" <tigran.mkrtchyan@xxxxxxx> wrote: > >>OPEN_CREATE with EXCLUSIVE4_1 sends initial file permission. >>Ignoring fact, that server have indicated that file mod is set, client >>will send yet another SETATTR request, but, as mode is already set, >>new SETATTR will be empty. This is not a problem, nevertheless >>an extra roundtrip and slow open on high latency networks. >> >>This change is aims to by-pass setattr if there are no attributes defined. >> >>Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@xxxxxxx> >>--- >> fs/nfs/nfs4proc.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >>diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c >>index 327b8c3..f6b278f 100644 >>--- a/fs/nfs/nfs4proc.c >>+++ b/fs/nfs/nfs4proc.c >>@@ -2724,6 +2724,12 @@ static int nfs4_do_setattr(struct inode *inode, struct >>rpc_cred *cred, >> .inode = inode, >> }; >> int err; >>+ /* >>+ * a shortcut: it there are no attributes to be updated, do not send setattr >>at all >>+ */ >>+ if (sattr->ia_valid == ATTR_OPEN) >>+ return 0; >>+ > > There is already a similar optimization in nfs_setattr(), so I don’t think it Obviously not mature enough. > makes sense to put this in nfs4_do_setattr(). We should rather just fix > _nfs4_do_open(). Agree. See v2. Tigran. > >> do { >> err = _nfs4_do_setattr(inode, cred, fattr, sattr, state, ilabel, olabel); >> switch (err) { >>-- >>2.5.5 >> > > N�����r��y���b�X��ǧv�^�){.n�+����{���"��^n�r���z���h����&���G���h�(�階�ݢj"���m�����z�ޖ���f���h���~�m� -- 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