linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] NFS: Use complete() instead complete_all()
@ 2016-09-22 11:54 Daniel Wagner
  2016-09-22 11:54 ` [PATCH 1/2] NFS: direct: use complete() instead of complete_all() Daniel Wagner
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Daniel Wagner @ 2016-09-22 11:54 UTC (permalink / raw)
  To: linux-nfs; +Cc: Anna Schumaker, Trond Myklebust, linux-kernel, Daniel Wagner

From: Daniel Wagner <daniel.wagner@bmw-carit.de>

Hi,

Using complete_all() is not wrong per se but it suggest that there
might be more than one waiter. For -rt I am reviewing all
complete_all() users and would like to leave only the real ones in the
tree. The main problem for -rt about complete_all() is that it can be
uses inside IRQ context and that can lead to unbounded amount work
inside the interrupt handler. That is a no no for -rt.

Besides trying to analys all the code paths to the wait_for_completion()
call and convince myself that there is only one waiter, I also run
a few tests:

 - some fio benchmarks
 - pynfs
  -cthon04

Non of them exposed any blocking threads etc. pynfs did showed some
failures but I am guessing that is just missing implementation:

pynfs/nfs4.1/testserver.py random:/home/nfs-test --force -v all
 
EID50    st_exchange_id.testSSV                                   : FAILURE
           NFS4Error: OP_EXCHANGE_ID should return NFS4_OK,
           instead got NFS4ERR_ENCR_ALG_UNSUPP
LKPP1a   st_lookupp.testLink                                      : RUNNING
LKPP1a   st_lookupp.testLink                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_SYMLINK, instead got NFS4ERR_NOENT
LKPP1b   st_lookupp.testBlock                                     : RUNNING
LKPP1b   st_lookupp.testBlock                                     : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
LKPP1c   st_lookupp.testChar                                      : RUNNING
LKPP1c   st_lookupp.testChar                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
LKPP1d   st_lookupp.testLookupp                                   : RUNNING
LKPP1d   st_lookupp.testLookupp                                   : PASS
LKPP1f   st_lookupp.testFifo                                      : RUNNING
LKPP1f   st_lookupp.testFifo                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
LKPP1r   st_lookupp.testFile                                      : RUNNING
LKPP1r   st_lookupp.testFile                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
LKPP1s   st_lookupp.testSock                                      : RUNNING
LKPP1s   st_lookupp.testSock                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT


PUTFH1a  st_putfh.testLink                                        : RUNNING
PUTFH1a  st_putfh.testLink                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1b  st_putfh.testBlock                                       : RUNNING
PUTFH1b  st_putfh.testBlock                                       : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1c  st_putfh.testChar                                        : RUNNING
PUTFH1c  st_putfh.testChar                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1d  st_putfh.testDir                                         : RUNNING
PUTFH1d  st_putfh.testDir                                         : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1f  st_putfh.testFifo                                        : RUNNING
PUTFH1f  st_putfh.testFifo                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1r  st_putfh.testFile                                        : RUNNING
PUTFH1r  st_putfh.testFile                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1s  st_putfh.testSocket                                      : RUNNING
PUTFH1s  st_putfh.testSocket                                      : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT


RNM1b    st_rename.testValidBlock                                 : RUNNING
RNM1b    st_rename.testValidBlock                                 : FAILURE
           OP_CREATE should return NFS4_OK, instead got
           NFS4ERR_PERM
RNM1c    st_rename.testValidChar                                  : RUNNING
RNM1c    st_rename.testValidChar                                  : FAILURE
           OP_CREATE should return NFS4_OK, instead got
           NFS4ERR_PERM

RNM2a    st_rename.testSfhLink                                    : RUNNING
RNM2a    st_rename.testSfhLink                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2b    st_rename.testSfhBlock                                   : RUNNING
RNM2b    st_rename.testSfhBlock                                   : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2c    st_rename.testSfhChar                                    : RUNNING
RNM2c    st_rename.testSfhChar                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2f    st_rename.testSfhFifo                                    : RUNNING
RNM2f    st_rename.testSfhFifo                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2r    st_rename.testSfhFile                                    : RUNNING
RNM2r    st_rename.testSfhFile                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2s    st_rename.testSfhSocket                                  : RUNNING
RNM2s    st_rename.testSfhSocket                                  : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3a    st_rename.testCfhLink                                    : RUNNING
RNM3a    st_rename.testCfhLink                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3b    st_rename.testCfhBlock                                   : RUNNING
RNM3b    st_rename.testCfhBlock                                   : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3c    st_rename.testCfhChar                                    : RUNNING
RNM3c    st_rename.testCfhChar                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3f    st_rename.testCfhFifo                                    : RUNNING
RNM3f    st_rename.testCfhFifo                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3r    st_rename.testCfhFile                                    : RUNNING
RNM3r    st_rename.testCfhFile                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3s    st_rename.testCfhSocket                                  : RUNNING
RNM3s    st_rename.testCfhSocket                                  : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT

EID50    st_exchange_id.testSSV                                   : FAILURE
           NFS4Error: OP_EXCHANGE_ID should return NFS4_OK,
           instead got NFS4ERR_ENCR_ALG_UNSUPP
LKPP1a   st_lookupp.testLink                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_SYMLINK, instead got NFS4ERR_NOENT
LKPP1b   st_lookupp.testBlock                                     : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
LKPP1c   st_lookupp.testChar                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT

LKPP1f   st_lookupp.testFifo                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
LKPP1r   st_lookupp.testFile                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
LKPP1s   st_lookupp.testSock                                      : FAILURE
           LOOKUPP with non-dir <cfh> should return
           NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT

PUTFH1a  st_putfh.testLink                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1b  st_putfh.testBlock                                       : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1c  st_putfh.testChar                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1d  st_putfh.testDir                                         : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1f  st_putfh.testFifo                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1r  st_putfh.testFile                                        : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
PUTFH1s  st_putfh.testSocket                                      : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT

RNM1b    st_rename.testValidBlock                                 : FAILURE
           OP_CREATE should return NFS4_OK, instead got
           NFS4ERR_PERM
RNM1c    st_rename.testValidChar                                  : FAILURE
           OP_CREATE should return NFS4_OK, instead got
           NFS4ERR_PERM

RNM2a    st_rename.testSfhLink                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2b    st_rename.testSfhBlock                                   : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2c    st_rename.testSfhChar                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2f    st_rename.testSfhFifo                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2r    st_rename.testSfhFile                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM2s    st_rename.testSfhSocket                                  : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3a    st_rename.testCfhLink                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3b    st_rename.testCfhBlock                                   : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3c    st_rename.testCfhChar                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3f    st_rename.testCfhFifo                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3r    st_rename.testCfhFile                                    : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT
RNM3s    st_rename.testCfhSocket                                  : FAILURE
           OP_LOOKUP should return NFS4_OK, instead got
           NFS4ERR_NOENT

VF1r     st_verify.testMandFile                                   : FAILURE

cheers,
daniel

Daniel Wagner (2):
  NFS: direct: use complete() instead of complete_all()
  NFS: cache_lib: use complete() instead of complete_all()

 fs/nfs/cache_lib.c | 2 +-
 fs/nfs/direct.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.7.4

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

* [PATCH 1/2] NFS: direct: use complete() instead of complete_all()
  2016-09-22 11:54 [PATCH 0/2] NFS: Use complete() instead complete_all() Daniel Wagner
@ 2016-09-22 11:54 ` Daniel Wagner
  2016-09-22 11:54 ` [PATCH 2/2] NFS: cache_lib: " Daniel Wagner
  2016-09-23 13:48 ` [PATCH 0/2] NFS: Use complete() instead complete_all() Anna Schumaker
  2 siblings, 0 replies; 9+ messages in thread
From: Daniel Wagner @ 2016-09-22 11:54 UTC (permalink / raw)
  To: linux-nfs; +Cc: Anna Schumaker, Trond Myklebust, linux-kernel, Daniel Wagner

From: Daniel Wagner <daniel.wagner@bmw-carit.de>

There is only one waiter for the completion, therefore there
is no need to use complete_all(). Let's make that clear by
using complete() instead of complete_all().

nfs_file_direct_write() or nfs_file_direct_read() allocated a request
object via nfs_direct_req_alloc(), which initializes the
completion. The request object then is freed later in the exit path.
Between the initialization and the release either
nfs_direct_write_schedule_iovec() resp
nfs_direct_read_schedule_iovec() are called which will asynchronously
process the request. The calling function waits via nfs_direct_wait()
till the async work has been done. Thus there is only one waiter on
the completion.

nfs_direct_pgio_init() and nfs_direct_read_completion() are passed via
function pointers to nfs pageio. The first function does a ref
counting (get_dreq() and put_dreq()) which ensures that
nfs_direct_read_completion() and nfs_direct_read_schedule_iovec() only
call the completion path once.

The usage pattern of the completion is:

waiter context                          waker context

nfs_file_direct_write()
  dreq = nfs_direct_req_alloc()
    init_completion()
  nfs_direct_write_schedule_iovec()
  nfs_direct_wait()
    wait_for_completion_killable()

                                        nfs_direct_write_schedule_work()
                                          nfs_direct_complete()
                                            complete()

nfs_file_direct_read()
  dreq = nfs_direct_req_all()
    init_completion()
  nfs_direct_read_schedule_iovec()
  nfs_direct_wait()
    wait_for_completion_killable()
                                        nfs_direct_read_schedule_iovec()
                                          nfs_direct_complete()
                                            complete()

                                        nfs_direct_read_completion()
                                          nfs_direct_complete()
                                            complete()

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
---
 fs/nfs/direct.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 72b7d13..bd81bcf 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -387,7 +387,7 @@ static void nfs_direct_complete(struct nfs_direct_req *dreq)
 		dreq->iocb->ki_complete(dreq->iocb, res, 0);
 	}
 
-	complete_all(&dreq->completion);
+	complete(&dreq->completion);
 
 	nfs_direct_req_release(dreq);
 }
-- 
2.7.4

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

* [PATCH 2/2] NFS: cache_lib: use complete() instead of complete_all()
  2016-09-22 11:54 [PATCH 0/2] NFS: Use complete() instead complete_all() Daniel Wagner
  2016-09-22 11:54 ` [PATCH 1/2] NFS: direct: use complete() instead of complete_all() Daniel Wagner
@ 2016-09-22 11:54 ` Daniel Wagner
  2016-09-23 13:48 ` [PATCH 0/2] NFS: Use complete() instead complete_all() Anna Schumaker
  2 siblings, 0 replies; 9+ messages in thread
From: Daniel Wagner @ 2016-09-22 11:54 UTC (permalink / raw)
  To: linux-nfs; +Cc: Anna Schumaker, Trond Myklebust, linux-kernel, Daniel Wagner

From: Daniel Wagner <daniel.wagner@bmw-carit.de>

There is only one waiter for the completion, therefore there
is no need to use complete_all(). Let's make that clear by
using complete() instead of complete_all().

The generic caching code from sunrpc is calling revisit() only once.

The usage pattern of the completion is:

waiter context                          waker context

do_cache_lookup_wait()
  nfs_cache_defer_req_alloc()
    init_completion()
  do_cache_lookup()
  nfs_cache_wait_for_upcall()
    wait_for_completion_timeout()

					nfs_dns_cache_revisit()
					  complete()

  nfs_cache_defer_req_put()

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
---
 fs/nfs/cache_lib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nfs/cache_lib.c b/fs/nfs/cache_lib.c
index 5f7b053..6de1570 100644
--- a/fs/nfs/cache_lib.c
+++ b/fs/nfs/cache_lib.c
@@ -76,7 +76,7 @@ static void nfs_dns_cache_revisit(struct cache_deferred_req *d, int toomany)
 
 	dreq = container_of(d, struct nfs_cache_defer_req, deferred_req);
 
-	complete_all(&dreq->completion);
+	complete(&dreq->completion);
 	nfs_cache_defer_req_put(dreq);
 }
 
-- 
2.7.4

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

* Re: [PATCH 0/2] NFS: Use complete() instead complete_all()
  2016-09-22 11:54 [PATCH 0/2] NFS: Use complete() instead complete_all() Daniel Wagner
  2016-09-22 11:54 ` [PATCH 1/2] NFS: direct: use complete() instead of complete_all() Daniel Wagner
  2016-09-22 11:54 ` [PATCH 2/2] NFS: cache_lib: " Daniel Wagner
@ 2016-09-23 13:48 ` Anna Schumaker
  2016-09-26  5:33   ` Daniel Wagner
  2 siblings, 1 reply; 9+ messages in thread
From: Anna Schumaker @ 2016-09-23 13:48 UTC (permalink / raw)
  To: Daniel Wagner, linux-nfs; +Cc: Trond Myklebust, linux-kernel, Daniel Wagner

Hi Daniel,

On 09/22/2016 07:54 AM, Daniel Wagner wrote:
> From: Daniel Wagner <daniel.wagner@bmw-carit.de>
> 
> Hi,
> 
> Using complete_all() is not wrong per se but it suggest that there
> might be more than one waiter. For -rt I am reviewing all
> complete_all() users and would like to leave only the real ones in the
> tree. The main problem for -rt about complete_all() is that it can be
> uses inside IRQ context and that can lead to unbounded amount work
> inside the interrupt handler. That is a no no for -rt.
> 
> Besides trying to analys all the code paths to the wait_for_completion()
> call and convince myself that there is only one waiter, I also run
> a few tests:
> 
>  - some fio benchmarks
>  - pynfs
>   -cthon04

Thanks for the patches, and for the extensive testing!  I haven't tried them with xfstests yet, but They look okay to me otherwise.  Assuming I don't see any new failures there I'll plan on adding them for v4.9.

Thanks,
Anna

> 
> Non of them exposed any blocking threads etc. pynfs did showed some
> failures but I am guessing that is just missing implementation:
> 
> pynfs/nfs4.1/testserver.py random:/home/nfs-test --force -v all
>  
> EID50    st_exchange_id.testSSV                                   : FAILURE
>            NFS4Error: OP_EXCHANGE_ID should return NFS4_OK,
>            instead got NFS4ERR_ENCR_ALG_UNSUPP
> LKPP1a   st_lookupp.testLink                                      : RUNNING
> LKPP1a   st_lookupp.testLink                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_SYMLINK, instead got NFS4ERR_NOENT
> LKPP1b   st_lookupp.testBlock                                     : RUNNING
> LKPP1b   st_lookupp.testBlock                                     : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> LKPP1c   st_lookupp.testChar                                      : RUNNING
> LKPP1c   st_lookupp.testChar                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> LKPP1d   st_lookupp.testLookupp                                   : RUNNING
> LKPP1d   st_lookupp.testLookupp                                   : PASS
> LKPP1f   st_lookupp.testFifo                                      : RUNNING
> LKPP1f   st_lookupp.testFifo                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> LKPP1r   st_lookupp.testFile                                      : RUNNING
> LKPP1r   st_lookupp.testFile                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> LKPP1s   st_lookupp.testSock                                      : RUNNING
> LKPP1s   st_lookupp.testSock                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> 
> 
> PUTFH1a  st_putfh.testLink                                        : RUNNING
> PUTFH1a  st_putfh.testLink                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1b  st_putfh.testBlock                                       : RUNNING
> PUTFH1b  st_putfh.testBlock                                       : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1c  st_putfh.testChar                                        : RUNNING
> PUTFH1c  st_putfh.testChar                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1d  st_putfh.testDir                                         : RUNNING
> PUTFH1d  st_putfh.testDir                                         : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1f  st_putfh.testFifo                                        : RUNNING
> PUTFH1f  st_putfh.testFifo                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1r  st_putfh.testFile                                        : RUNNING
> PUTFH1r  st_putfh.testFile                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1s  st_putfh.testSocket                                      : RUNNING
> PUTFH1s  st_putfh.testSocket                                      : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> 
> 
> RNM1b    st_rename.testValidBlock                                 : RUNNING
> RNM1b    st_rename.testValidBlock                                 : FAILURE
>            OP_CREATE should return NFS4_OK, instead got
>            NFS4ERR_PERM
> RNM1c    st_rename.testValidChar                                  : RUNNING
> RNM1c    st_rename.testValidChar                                  : FAILURE
>            OP_CREATE should return NFS4_OK, instead got
>            NFS4ERR_PERM
> 
> RNM2a    st_rename.testSfhLink                                    : RUNNING
> RNM2a    st_rename.testSfhLink                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2b    st_rename.testSfhBlock                                   : RUNNING
> RNM2b    st_rename.testSfhBlock                                   : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2c    st_rename.testSfhChar                                    : RUNNING
> RNM2c    st_rename.testSfhChar                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2f    st_rename.testSfhFifo                                    : RUNNING
> RNM2f    st_rename.testSfhFifo                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2r    st_rename.testSfhFile                                    : RUNNING
> RNM2r    st_rename.testSfhFile                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2s    st_rename.testSfhSocket                                  : RUNNING
> RNM2s    st_rename.testSfhSocket                                  : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3a    st_rename.testCfhLink                                    : RUNNING
> RNM3a    st_rename.testCfhLink                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3b    st_rename.testCfhBlock                                   : RUNNING
> RNM3b    st_rename.testCfhBlock                                   : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3c    st_rename.testCfhChar                                    : RUNNING
> RNM3c    st_rename.testCfhChar                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3f    st_rename.testCfhFifo                                    : RUNNING
> RNM3f    st_rename.testCfhFifo                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3r    st_rename.testCfhFile                                    : RUNNING
> RNM3r    st_rename.testCfhFile                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3s    st_rename.testCfhSocket                                  : RUNNING
> RNM3s    st_rename.testCfhSocket                                  : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> 
> EID50    st_exchange_id.testSSV                                   : FAILURE
>            NFS4Error: OP_EXCHANGE_ID should return NFS4_OK,
>            instead got NFS4ERR_ENCR_ALG_UNSUPP
> LKPP1a   st_lookupp.testLink                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_SYMLINK, instead got NFS4ERR_NOENT
> LKPP1b   st_lookupp.testBlock                                     : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> LKPP1c   st_lookupp.testChar                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> 
> LKPP1f   st_lookupp.testFifo                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> LKPP1r   st_lookupp.testFile                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> LKPP1s   st_lookupp.testSock                                      : FAILURE
>            LOOKUPP with non-dir <cfh> should return
>            NFS4ERR_NOTDIR, instead got NFS4ERR_NOENT
> 
> PUTFH1a  st_putfh.testLink                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1b  st_putfh.testBlock                                       : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1c  st_putfh.testChar                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1d  st_putfh.testDir                                         : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1f  st_putfh.testFifo                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1r  st_putfh.testFile                                        : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> PUTFH1s  st_putfh.testSocket                                      : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> 
> RNM1b    st_rename.testValidBlock                                 : FAILURE
>            OP_CREATE should return NFS4_OK, instead got
>            NFS4ERR_PERM
> RNM1c    st_rename.testValidChar                                  : FAILURE
>            OP_CREATE should return NFS4_OK, instead got
>            NFS4ERR_PERM
> 
> RNM2a    st_rename.testSfhLink                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2b    st_rename.testSfhBlock                                   : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2c    st_rename.testSfhChar                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2f    st_rename.testSfhFifo                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2r    st_rename.testSfhFile                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM2s    st_rename.testSfhSocket                                  : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3a    st_rename.testCfhLink                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3b    st_rename.testCfhBlock                                   : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3c    st_rename.testCfhChar                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3f    st_rename.testCfhFifo                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3r    st_rename.testCfhFile                                    : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> RNM3s    st_rename.testCfhSocket                                  : FAILURE
>            OP_LOOKUP should return NFS4_OK, instead got
>            NFS4ERR_NOENT
> 
> VF1r     st_verify.testMandFile                                   : FAILURE
> 
> cheers,
> daniel
> 
> Daniel Wagner (2):
>   NFS: direct: use complete() instead of complete_all()
>   NFS: cache_lib: use complete() instead of complete_all()
> 
>  fs/nfs/cache_lib.c | 2 +-
>  fs/nfs/direct.c    | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 

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

* Re: [PATCH 0/2] NFS: Use complete() instead complete_all()
  2016-09-23 13:48 ` [PATCH 0/2] NFS: Use complete() instead complete_all() Anna Schumaker
@ 2016-09-26  5:33   ` Daniel Wagner
  2016-09-26 13:31     ` Anna Schumaker
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Wagner @ 2016-09-26  5:33 UTC (permalink / raw)
  To: Anna Schumaker, Daniel Wagner, linux-nfs; +Cc: Trond Myklebust, linux-kernel

Hi Anna,

On 09/23/2016 03:48 PM, Anna Schumaker wrote:
>> Besides trying to analys all the code paths to the wait_for_completion()
>> call and convince myself that there is only one waiter, I also run
>> a few tests:
>>
>>  - some fio benchmarks
>>  - pynfs
>>   -cthon04
>
> Thanks for the patches, and for the extensive testing!  I haven't
> tried them with xfstests yet, but They look okay to me otherwise.
> Assuming I don't see any new failures there I'll plan on adding them
> for v4.9.

I tried a few tests from xfstests but I was not sure which make sense to 
run, that's why I went for the more NFS specific tests.

I'll see what happens when I run the generic tests from xfstests. Should 
all of them pass?

cheers,
daniel

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

* Re: [PATCH 0/2] NFS: Use complete() instead complete_all()
  2016-09-26  5:33   ` Daniel Wagner
@ 2016-09-26 13:31     ` Anna Schumaker
  2016-09-27  7:42       ` Daniel Wagner
  0 siblings, 1 reply; 9+ messages in thread
From: Anna Schumaker @ 2016-09-26 13:31 UTC (permalink / raw)
  To: Daniel Wagner, Daniel Wagner, linux-nfs; +Cc: Trond Myklebust, linux-kernel

On 09/26/2016 01:33 AM, Daniel Wagner wrote:
> Hi Anna,
> 
> On 09/23/2016 03:48 PM, Anna Schumaker wrote:
>>> Besides trying to analys all the code paths to the wait_for_completion()
>>> call and convince myself that there is only one waiter, I also run
>>> a few tests:
>>>
>>>  - some fio benchmarks
>>>  - pynfs
>>>   -cthon04
>>
>> Thanks for the patches, and for the extensive testing!  I haven't
>> tried them with xfstests yet, but They look okay to me otherwise.
>> Assuming I don't see any new failures there I'll plan on adding them
>> for v4.9.
> 
> I tried a few tests from xfstests but I was not sure which make sense to run, that's why I went for the more NFS specific tests.
> 
> I'll see what happens when I run the generic tests from xfstests. Should all of them pass?

No, there are a handful that we know don't pass.  When I run on NFS v4.1, I get:

        Failures: generic/035 generic/071 generic/128 generic/294 generic/306 generic/309 generic/310 generic/313 generic/314 generic/315 generic/316 generic/319 generic/337 generic/360 generic/375
        Failed 15 of 92 tests

Thanks,
Anna

> 
> cheers,
> daniel

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

* Re: [PATCH 0/2] NFS: Use complete() instead complete_all()
  2016-09-26 13:31     ` Anna Schumaker
@ 2016-09-27  7:42       ` Daniel Wagner
  2016-09-27  8:33         ` Daniel Wagner
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Wagner @ 2016-09-27  7:42 UTC (permalink / raw)
  To: Anna Schumaker, Daniel Wagner, linux-nfs; +Cc: Trond Myklebust, linux-kernel

Hi Anna,

On 09/26/2016 03:31 PM, Anna Schumaker wrote:
> No, there are a handful that we know don't pass.  When I run on NFS v4.1, I get:
> 
> Failures: generic/035 generic/071 generic/128 generic/294
> generic/306 generic/309 generic/310 generic/313 generic/314
> generic/315 generic/316 generic/319 generic/337 generic/360 generic/375
>         Failed 15 of 92 tests

# nfsstat -m
/mnt/nfs-test from 10.10.50.71:/home/nfs-test
 Flags: rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,
        hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,
        clientaddr=10.10.50.134,local_lock=none,addr=10.10.50.71


# ./check -nfs generic/???
FSTYP         -- nfs
PLATFORM      -- Linux/x86_64 rincewind 4.8.0-rc7-00044-ge5ea2be

generic/001 10s ... 10s
generic/002 1s ... 1s
generic/003      [not run] this test requires a valid $SCRATCH_DEV
generic/004      [not run] xfs_io flink failed (old kernel/wrong fs?)
generic/005 0s ... 0s
generic/006 9s ... 10s
generic/007 31s ... 31s
generic/008      [not run] xfs_io fzero failed (old kernel/wrong fs?)
generic/009      [not run] xfs_io fzero failed (old kernel/wrong fs?)
generic/010      [not run] src/dbtest not built
generic/011 7s ... 8s
generic/012      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/013 9s ... 9s
generic/014 11s ... 11s
generic/015      [not run] this test requires a valid $SCRATCH_DEV
generic/016      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/017      [not run] this test requires a valid $SCRATCH_DEV
generic/018      [not run] this test requires a valid $SCRATCH_DEV
generic/019      [not run] this test requires a valid $SCRATCH_DEV
generic/020      [not run] attrs not supported by this filesystem type: nfs
generic/021      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/022      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/023 2s ... 1s
generic/024      [not run] fs doesn't support RENAME_NOREPLACE
generic/025      [not run] fs doesn't support RENAME_EXCHANGE
generic/026      [not run] this test requires a valid $SCRATCH_DEV
generic/027      [not run] this test requires a valid $SCRATCH_DEV
generic/028 5s ... 5s
generic/029      [not run] this test requires a valid $SCRATCH_DEV
generic/030      [not run] this test requires a valid $SCRATCH_DEV
generic/031      [not run] this test requires a valid $SCRATCH_DEV
generic/032      [not run] this test requires a valid $SCRATCH_DEV
generic/033      [not run] this test requires a valid $SCRATCH_DEV
generic/034      [not run] this test requires a valid $SCRATCH_DEV
generic/035      - output mismatch (see /root/src/xfstests-dev/results//generic/035.out.bad)
    --- tests/generic/035.out   2016-09-26 16:16:50.376838410 +0200
    +++ /root/src/xfstests-dev/results//generic/035.out.bad     2016-09-27 10:55:54.981708640 +0200
    @@ -1,3 +1,5 @@
     QA output created by 035
     overwriting regular file:
    +nlink is 1, should be 0
     overwriting directory:
    +t_rename_overwrite: fstat(3): Stale file handle
    ...
    (Run 'diff -u tests/generic/035.out /root/src/xfstests-dev/results//generic/035.out.bad'  to see the entire diff)
generic/036 10s ... 10s
generic/037      [not run] this test requires a valid $SCRATCH_DEV
generic/038      [not run] this test requires a valid $SCRATCH_DEV
generic/039      [not run] this test requires a valid $SCRATCH_DEV
generic/040      [not run] this test requires a valid $SCRATCH_DEV
generic/041      [not run] this test requires a valid $SCRATCH_DEV
generic/042      [not run] this test requires a valid $SCRATCH_DEV
generic/043      [not run] this test requires a valid $SCRATCH_DEV
generic/044      [not run] this test requires a valid $SCRATCH_DEV
generic/045      [not run] this test requires a valid $SCRATCH_DEV
generic/046      [not run] this test requires a valid $SCRATCH_DEV
generic/047      [not run] this test requires a valid $SCRATCH_DEV
generic/048      [not run] this test requires a valid $SCRATCH_DEV
generic/049      [not run] this test requires a valid $SCRATCH_DEV
generic/050      [not run] this test requires a valid $SCRATCH_DEV
generic/051      [not run] this test requires a valid $SCRATCH_DEV
generic/052      [not run] this test requires a valid $SCRATCH_DEV
generic/053      [not run] this test requires a valid $SCRATCH_DEV
generic/054      [not run] this test requires a valid $SCRATCH_DEV
generic/055      [not run] this test requires a valid $SCRATCH_DEV
generic/056      [not run] this test requires a valid $SCRATCH_DEV
generic/057      [not run] this test requires a valid $SCRATCH_DEV
generic/058      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/059      [not run] this test requires a valid $SCRATCH_DEV
generic/060      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/061      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/062      [not run] this test requires a valid $SCRATCH_DEV
generic/063      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/064      [not run] this test requires a valid $SCRATCH_DEV
generic/065      [not run] this test requires a valid $SCRATCH_DEV
generic/066      [not run] this test requires a valid $SCRATCH_DEV
generic/067      [not run] this test requires a valid $SCRATCH_DEV
generic/068      [not run] this test requires a valid $SCRATCH_DEV
generic/069      [not run] this test requires a valid $SCRATCH_DEV
generic/070      [not run] attrs not supported by this filesystem type: nfs
generic/071      [not run] this test requires a valid $SCRATCH_DEV
generic/072      [not run] xfs_io fcollapse failed (old kernel/wrong fs?)
generic/073      [not run] this test requires a valid $SCRATCH_DEV
generic/074 93s ... 97s
generic/075 9s ... 9s
generic/076      [not run] this test requires a valid $SCRATCH_DEV
generic/077      [not run] this test requires a valid $SCRATCH_DEV
generic/078      [not run] fs doesn't support RENAME_WHITEOUT
generic/079      [not run] file system doesn't support chattr +i
generic/080 2s ... 3s
generic/081      [not run] this test requires a valid $SCRATCH_DEV
generic/082      [not run] this test requires a valid $SCRATCH_DEV
generic/083      [not run] this test requires a valid $SCRATCH_DEV
generic/084      [not run] this test requires a valid $SCRATCH_DEV
generic/085      [not run] this test requires a valid $SCRATCH_DEV
generic/086 1s ... 0s
generic/087      - output mismatch (see /root/src/xfstests-dev/results//generic/087.out.bad)
    --- tests/generic/087.out   2016-09-26 16:16:50.384838409 +0200
    +++ /root/src/xfstests-dev/results//generic/087.out.bad     2016-09-27 10:58:12.526702228 +0200
    @@ -1,7 +1,7 @@
     QA output created by 087
     t a 600 file owned by (99/99) as user/group(99/99)  PASS
     T a 600 file owned by (99/99) as user/group(99/99)  PASS
    -t a 600 file owned by (99/99) as user/group(100/99)  PASS
    -T a 600 file owned by (99/99) as user/group(100/99)  PASS
    +t a 600 file owned by (99/99) as user/group(100/99)  FAIL
    +T a 600 file owned by (99/99) as user/group(100/99)  FAIL
    ...
    (Run 'diff -u tests/generic/087.out /root/src/xfstests-dev/results//generic/087.out.bad'  to see the entire diff)
generic/088      - output mismatch (see /root/src/xfstests-dev/results//generic/088.out.bad)
    --- tests/generic/088.out   2016-09-26 16:16:50.384838409 +0200
    +++ /root/src/xfstests-dev/results//generic/088.out.bad     2016-09-27 10:58:12.975702207 +0200
    @@ -1,9 +1,2 @@
     QA output created by 088
    -access(TEST_DIR/t_access, 0) returns 0
    -access(TEST_DIR/t_access, R_OK) returns 0
    -access(TEST_DIR/t_access, W_OK) returns 0
    -access(TEST_DIR/t_access, X_OK) returns -1
    -access(TEST_DIR/t_access, R_OK | W_OK) returns 0
    -access(TEST_DIR/t_access, R_OK | X_OK) returns -1
    ...
    (Run 'diff -u tests/generic/088.out /root/src/xfstests-dev/results//generic/088.out.bad'  to see the entire diff)
generic/089      - output mismatch (see /root/src/xfstests-dev/results//generic/089.out.bad)
    --- tests/generic/089.out   2016-09-26 16:16:50.384838409 +0200
    +++ /root/src/xfstests-dev/results//generic/089.out.bad     2016-09-27 10:58:18.877701932 +0200
    @@ -1,19 +1,25 @@
     QA output created by 089
    -completed 50 iterations
    -completed 50 iterations
    -completed 50 iterations
    -completed 10000 iterations
    +can't open lock file t_mtab~: Permission denied
    +can't open lock file t_mtab~: Permission denied
    ...
    (Run 'diff -u tests/generic/089.out /root/src/xfstests-dev/results//generic/089.out.bad'  to see the entire diff)
generic/090      [not run] this test requires a valid $SCRATCH_DEV
generic/091 23s ... 24s
generic/092      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/093      [not run] not suitable for this OS: Linux
generic/094      [not run] this test requires a valid $SCRATCH_DEV
generic/095      [not run] this test requires a valid $SCRATCH_DEV
generic/096      [not run] this test requires a valid $SCRATCH_DEV
generic/097      [not run] not suitable for this OS: Linux
generic/098      [not run] this test requires a valid $SCRATCH_DEV
generic/099      [not run] not suitable for this OS: Linux
generic/100      [not run] this test requires a valid $SCRATCH_DEV
generic/101      [not run] this test requires a valid $SCRATCH_DEV
generic/102      [not run] this test requires a valid $SCRATCH_DEV
generic/103      [not run] this test requires a valid $SCRATCH_DEV
generic/104      [not run] this test requires a valid $SCRATCH_DEV
generic/105      [not run] this test requires a valid $SCRATCH_DEV
generic/106      [not run] this test requires a valid $SCRATCH_DEV
generic/107      [not run] this test requires a valid $SCRATCH_DEV
generic/108      [not run] this test requires a valid $SCRATCH_DEV
generic/109      [not run] this test requires a valid $SCRATCH_DEV
generic/110      [not run] Reflink not supported by test filesystem type: nfs
generic/111      [not run] Reflink not supported by test filesystem type: nfs
generic/112 9s ... 9s
generic/113 14s ... 14s
generic/114      [not run] device block size: 4096 greater than 512
generic/115      [not run] Reflink not supported by test filesystem type: nfs
generic/116      [not run] Reflink not supported by test filesystem type: nfs
generic/117      [not run] this test requires a valid $SCRATCH_DEV
generic/118      [not run] Reflink not supported by test filesystem type: nfs
generic/119      [not run] Reflink not supported by test filesystem type: nfs
generic/120      [not run] this test requires a valid $SCRATCH_DEV
generic/121      [not run] Dedupe not supported by test filesystem type: nfs
generic/122      [not run] Dedupe not supported by test filesystem type: nfs
generic/123      [not run] fsgqa user not defined.
generic/124      [not run] this test requires a valid $SCRATCH_DEV
generic/125      [not run] fsgqa user not defined.
generic/126      - output mismatch (see /root/src/xfstests-dev/results//generic/126.out.bad)
    --- tests/generic/126.out   2016-09-26 16:16:50.390838409 +0200
    +++ /root/src/xfstests-dev/results//generic/126.out.bad     2016-09-27 10:59:34.194698422 +0200
    @@ -1,19 +1,19 @@
     QA output created by 126
    -x a 001 file owned by (99/99) as user/group(12/100)  PASS
    -x a 010 file owned by (99/99) as user/group(200/99)  PASS
    +x a 001 file owned by (99/99) as user/group(12/100)  FAIL
    +x a 010 file owned by (99/99) as user/group(200/99)  FAIL
     x a 100 file owned by (99/99) as user/group(99/500)  PASS
    -w a 002 file owned by (99/99) as user/group(12/100)  PASS
    ...
    (Run 'diff -u tests/generic/126.out /root/src/xfstests-dev/results//generic/126.out.bad'  to see the entire diff)
generic/127 232s ... 245s
generic/128      [not run] this test requires a valid $SCRATCH_DEV
generic/129      [not run] this test requires a valid $SCRATCH_DEV
generic/130      [not run] this test requires a valid $SCRATCH_DEV
generic/131 1s ... 1s
generic/132      [not run] this test requires a valid $SCRATCH_DEV
generic/133 59s ... 63s
generic/134      [not run] Reflink not supported by test filesystem type: nfs
generic/135      [not run] this test requires a valid $SCRATCH_DEV
generic/136      [not run] Dedupe not supported by test filesystem type: nfs
generic/137      [not run] Reflink not supported by test filesystem type: nfs
generic/138      [not run] Reflink not supported by test filesystem type: nfs
generic/139      [not run] Reflink not supported by test filesystem type: nfs
generic/140      [not run] Reflink not supported by test filesystem type: nfs
generic/141      [not run] this test requires a valid $SCRATCH_DEV
generic/142      [not run] Reflink not supported by test filesystem type: nfs
generic/143      [not run] Reflink not supported by test filesystem type: nfs
generic/144      [not run] Reflink not supported by test filesystem type: nfs
generic/145      [not run] Reflink not supported by test filesystem type: nfs
generic/146      [not run] Reflink not supported by test filesystem type: nfs
generic/147      [not run] Reflink not supported by test filesystem type: nfs
generic/148      [not run] Reflink not supported by test filesystem type: nfs
generic/149      [not run] Reflink not supported by test filesystem type: nfs
generic/150      [not run] Reflink not supported by test filesystem type: nfs
generic/151      [not run] Reflink not supported by test filesystem type: nfs
generic/152      [not run] Reflink not supported by test filesystem type: nfs
generic/153      [not run] Reflink not supported by test filesystem type: nfs
generic/154      [not run] Reflink not supported by test filesystem type: nfs
generic/155      [not run] Reflink not supported by test filesystem type: nfs
generic/156      [not run] Reflink not supported by test filesystem type: nfs
generic/157      [not run] Reflink not supported by test filesystem type: nfs
generic/158      [not run] Dedupe not supported by test filesystem type: nfs
generic/159      [not run] lsattr not supported by test filesystem type: nfs
generic/160      [not run] lsattr not supported by test filesystem type: nfs
generic/161      [not run] this test requires a valid $SCRATCH_DEV
generic/162      [not run] this test requires a valid $SCRATCH_DEV
generic/163      [not run] this test requires a valid $SCRATCH_DEV
generic/164      [not run] this test requires a valid $SCRATCH_DEV
generic/165      [not run] this test requires a valid $SCRATCH_DEV
generic/166      [not run] this test requires a valid $SCRATCH_DEV
generic/167      [not run] this test requires a valid $SCRATCH_DEV
generic/168      [not run] this test requires a valid $SCRATCH_DEV
generic/169      [not run] this test requires a valid $SCRATCH_DEV
generic/170      [not run] this test requires a valid $SCRATCH_DEV
generic/171      [not run] this test requires a valid $SCRATCH_DEV
generic/172      [not run] this test requires a valid $SCRATCH_DEV
generic/173      [not run] this test requires a valid $SCRATCH_DEV
generic/174      [not run] this test requires a valid $SCRATCH_DEV
generic/175      [not run] this test requires a valid $SCRATCH_DEV
generic/176      [not run] this test requires a valid $SCRATCH_DEV
generic/177      [not run] this test requires a valid $SCRATCH_DEV
generic/178      [not run] Reflink not supported by test filesystem type: nfs
generic/179      [not run] Reflink not supported by test filesystem type: nfs
generic/180      [not run] Reflink not supported by test filesystem type: nfs
generic/181      [not run] Reflink not supported by test filesystem type: nfs
generic/182      [not run] Dedupe not supported by test filesystem type: nfs
generic/183      [not run] this test requires a valid $SCRATCH_DEV
generic/184      - output mismatch (see /root/src/xfstests-dev/results//generic/184.out.bad)
    --- tests/generic/184.out   2016-09-26 16:16:50.398838409 +0200
    +++ /root/src/xfstests-dev/results//generic/184.out.bad     2016-09-27 11:05:02.579683115 +0200
    @@ -1 +1,3 @@
     QA output created by 184 - silence is golden
    +mknod: /mnt/nfs-test/null: Operation not permitted
    +chmod: cannot access '/mnt/nfs-test/null': No such file or directory
    ...
    (Run 'diff -u tests/generic/184.out /root/src/xfstests-dev/results//generic/184.out.bad'  to see the entire diff)
generic/185      [not run] this test requires a valid $SCRATCH_DEV
generic/186      [not run] this test requires a valid $SCRATCH_DEV
generic/187      [not run] this test requires a valid $SCRATCH_DEV
generic/188      [not run] this test requires a valid $SCRATCH_DEV
generic/189      [not run] this test requires a valid $SCRATCH_DEV
generic/190      [not run] this test requires a valid $SCRATCH_DEV
generic/191      [not run] this test requires a valid $SCRATCH_DEV
generic/192      [not run] atime related mount options have no effect on NFS
generic/193      [not run] fsgqa user not defined.
generic/194      [not run] this test requires a valid $SCRATCH_DEV
generic/195      [not run] this test requires a valid $SCRATCH_DEV
generic/196      [not run] this test requires a valid $SCRATCH_DEV
generic/197      [not run] this test requires a valid $SCRATCH_DEV
generic/198 1s ... 1s
generic/199      [not run] this test requires a valid $SCRATCH_DEV
generic/200      [not run] this test requires a valid $SCRATCH_DEV
generic/201      [not run] this test requires a valid $SCRATCH_DEV
generic/202      [not run] this test requires a valid $SCRATCH_DEV
generic/203      [not run] this test requires a valid $SCRATCH_DEV
generic/204      [not run] this test requires a valid $SCRATCH_DEV
generic/205      [not run] this test requires a valid $SCRATCH_DEV
generic/206      [not run] this test requires a valid $SCRATCH_DEV
generic/207 1s ... 0s
generic/208 200s ... 201s
generic/209 32s ... 31s
generic/210 0s ... 0s
generic/211 1s ... 0s
generic/212 0s ... 0s
generic/213 2s ... 3s
generic/214 0s ... 0s
generic/215 3s ... 2s
generic/216      [not run] this test requires a valid $SCRATCH_DEV
generic/217      [not run] this test requires a valid $SCRATCH_DEV
generic/218      [not run] this test requires a valid $SCRATCH_DEV
generic/219      [not run] this test requires a valid $SCRATCH_DEV
generic/220      [not run] this test requires a valid $SCRATCH_DEV
generic/221 1s ... 2s
generic/222      [not run] this test requires a valid $SCRATCH_DEV
generic/223      [not run] this test requires a valid $SCRATCH_DEV
generic/224      [not run] this test requires a valid $SCRATCH_DEV
generic/225      [not run] this test requires a valid $SCRATCH_DEV
generic/226      [not run] this test requires a valid $SCRATCH_DEV
generic/227      [not run] this test requires a valid $SCRATCH_DEV
generic/228 1s ... 0s
generic/229      [not run] this test requires a valid $SCRATCH_DEV
generic/230      [not run] this test requires a valid $SCRATCH_DEV
generic/231      [not run] this test requires a valid $SCRATCH_DEV
generic/232      [not run] this test requires a valid $SCRATCH_DEV
generic/233      [not run] this test requires a valid $SCRATCH_DEV
generic/234      [not run] this test requires a valid $SCRATCH_DEV
generic/235      [not run] this test requires a valid $SCRATCH_DEV
generic/236 1s ... 2s
generic/237      [not run] ACLs not supported by this filesystem type: nfs
generic/238      [not run] this test requires a valid $SCRATCH_DEV
generic/239 12s ... 13s
generic/240 0s ... 0s
generic/241 73s ... 73s
generic/242      [not run] this test requires a valid $SCRATCH_DEV
generic/243      [not run] this test requires a valid $SCRATCH_DEV
generic/244      [not run] disk quotas not supported by this filesystem type: nfs
generic/245 0s ... 0s
generic/246 0s ... 1s
generic/247 16s ... 15s
generic/248 0s ... 0s
generic/249 1s ... 1s
generic/250      [not run] this test requires a valid $SCRATCH_DEV
generic/251      [not run] this test requires a valid $SCRATCH_DEV
generic/252      [not run] this test requires a valid $SCRATCH_DEV
generic/253      [not run] this test requires a valid $SCRATCH_DEV
generic/254      [not run] this test requires a valid $SCRATCH_DEV
generic/255      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/256      [not run] this test requires a valid $SCRATCH_DEV
generic/257 1s ... 1s
generic/258 0s ... 1s
generic/259      [not run] this test requires a valid $SCRATCH_DEV
generic/260      [not run] this test requires a valid $SCRATCH_DEV
generic/261      [not run] this test requires a valid $SCRATCH_DEV
generic/262      [not run] this test requires a valid $SCRATCH_DEV
generic/263 12s ... 12s
generic/264      [not run] this test requires a valid $SCRATCH_DEV
generic/265      [not run] this test requires a valid $SCRATCH_DEV
generic/266      [not run] this test requires a valid $SCRATCH_DEV
generic/267      [not run] this test requires a valid $SCRATCH_DEV
generic/268      [not run] this test requires a valid $SCRATCH_DEV
generic/269      [not run] this test requires a valid $SCRATCH_DEV
generic/270      [not run] disk quotas not supported by this filesystem type: nfs
generic/271      [not run] this test requires a valid $SCRATCH_DEV
generic/272      [not run] this test requires a valid $SCRATCH_DEV
generic/273      [not run] this test requires a valid $SCRATCH_DEV
generic/274      [not run] this test requires a valid $SCRATCH_DEV
generic/275      [not run] this test requires a valid $SCRATCH_DEV
generic/276      [not run] this test requires a valid $SCRATCH_DEV
generic/277      [not run] this test requires a valid $SCRATCH_DEV
generic/278      [not run] this test requires a valid $SCRATCH_DEV
generic/279      [not run] this test requires a valid $SCRATCH_DEV
generic/280      [not run] this test requires a valid $SCRATCH_DEV
generic/281      [not run] this test requires a valid $SCRATCH_DEV
generic/282      [not run] this test requires a valid $SCRATCH_DEV
generic/283      [not run] this test requires a valid $SCRATCH_DEV
generic/284      [not run] this test requires a valid $SCRATCH_DEV
generic/285      [failed, exit status 1] - output mismatch (see /root/src/xfstests-dev/results//generic/285.out.bad)
    --- tests/generic/285.out   2016-09-26 16:16:50.412838408 +0200
    +++ /root/src/xfstests-dev/results//generic/285.out.bad     2016-09-27 11:11:27.093665192 +0200
    @@ -1 +1,3 @@
     QA output created by 285
    +seek sanity check failed!
    +(see /root/src/xfstests-dev/results//generic/285.full for details)
    ...
    (Run 'diff -u tests/generic/285.out /root/src/xfstests-dev/results//generic/285.out.bad'  to see the entire diff)
generic/286 3s ... 3s
generic/287      [not run] this test requires a valid $SCRATCH_DEV
generic/288      [not run] this test requires a valid $SCRATCH_DEV
generic/289      [not run] this test requires a valid $SCRATCH_DEV
generic/290      [not run] this test requires a valid $SCRATCH_DEV
generic/291      [not run] this test requires a valid $SCRATCH_DEV
generic/292      [not run] this test requires a valid $SCRATCH_DEV
generic/293      [not run] this test requires a valid $SCRATCH_DEV
generic/294      [not run] this test requires a valid $SCRATCH_DEV
generic/295      [not run] this test requires a valid $SCRATCH_DEV
generic/296      [not run] this test requires a valid $SCRATCH_DEV
generic/297      [not run] this test requires a valid $SCRATCH_DEV
generic/298      [not run] this test requires a valid $SCRATCH_DEV
generic/299      [not run] this test requires a valid $SCRATCH_DEV
generic/300      [not run] this test requires a valid $SCRATCH_DEV
generic/301      [not run] this test requires a valid $SCRATCH_DEV
generic/302      [not run] this test requires a valid $SCRATCH_DEV
generic/303      [not run] Reflink not supported by test filesystem type: nfs
generic/304      [not run] Dedupe not supported by test filesystem type: nfs
generic/305      [not run] this test requires a valid $SCRATCH_DEV
generic/306      [not run] this test requires a valid $SCRATCH_DEV
generic/307      [not run] this test requires a valid $SCRATCH_DEV
generic/308 1s ... 1s
generic/309 1s ... 1s
generic/310 72s ... 72s
generic/311      [not run] this test requires a valid $SCRATCH_DEV
generic/312      [not run] this test requires a valid $SCRATCH_DEV
generic/313 4s ... 5s
generic/314      [not run] ACLs not supported by this filesystem type: nfs
generic/315 1s ... 0s
generic/316      [not run] xfs_io fiemap failed (old kernel/wrong fs?)
generic/317      [not run] this test requires a valid $SCRATCH_DEV
generic/318      [not run] this test requires a valid $SCRATCH_DEV
generic/319      [not run] ACLs not supported by this filesystem type: nfs
generic/320      [not run] this test requires a valid $SCRATCH_DEV
generic/321      [not run] this test requires a valid $SCRATCH_DEV
generic/322      [not run] this test requires a valid $SCRATCH_DEV
generic/323 120s ... 121s
generic/324      [not run] this test requires a valid $SCRATCH_DEV
generic/325      [not run] this test requires a valid $SCRATCH_DEV
generic/326      [not run] this test requires a valid $SCRATCH_DEV
generic/327      [not run] this test requires a valid $SCRATCH_DEV
generic/328      [not run] this test requires a valid $SCRATCH_DEV
generic/329      [not run] this test requires a valid $SCRATCH_DEV
generic/330      [not run] this test requires a valid $SCRATCH_DEV
generic/331      [not run] this test requires a valid $SCRATCH_DEV
generic/332      [not run] this test requires a valid $SCRATCH_DEV
generic/333      [not run] this test requires a valid $SCRATCH_DEV
generic/334      [not run] this test requires a valid $SCRATCH_DEV
generic/335      [not run] this test requires a valid $SCRATCH_DEV
generic/336      [not run] this test requires a valid $SCRATCH_DEV
generic/337      [not run] this test requires a valid $SCRATCH_DEV
generic/338      [not run] this test requires a valid $SCRATCH_DEV
generic/339      [not run] this test requires a valid $SCRATCH_DEV
generic/340      [not run] this test requires a valid $SCRATCH_DEV
generic/341      [not run] this test requires a valid $SCRATCH_DEV
generic/342      [not run] this test requires a valid $SCRATCH_DEV
generic/343      [not run] this test requires a valid $SCRATCH_DEV
generic/344      [not run] this test requires a valid $SCRATCH_DEV
generic/345      [not run] this test requires a valid $SCRATCH_DEV
generic/346      [not run] this test requires a valid $SCRATCH_DEV
generic/347      [failed, exit status 1] - output mismatch (see /root/src/xfstests-dev/results//generic/347.out.bad)
    --- tests/generic/347.out   2016-09-26 16:16:50.420838408 +0200
    +++ /root/src/xfstests-dev/results//generic/347.out.bad     2016-09-27 11:15:09.173654840 +0200
    @@ -1,2 +1,2 @@
     QA output created by 347
    -=== completed
    +Usage: _require_block_device <dev>
    ...
    (Run 'diff -u tests/generic/347.out /root/src/xfstests-dev/results//generic/347.out.bad'  to see the entire diff)
generic/348      [not run] this test requires a valid $SCRATCH_DEV
generic/349      [not run] xfs_io fzero failed (old kernel/wrong fs?)
generic/350      - output mismatch (see /root/src/xfstests-dev/results//generic/350.out.bad)
    --- tests/generic/350.out   2016-09-26 16:16:50.421838408 +0200
    +++ /root/src/xfstests-dev/results//generic/350.out.bad     2016-09-27 11:15:11.670654724 +0200
    @@ -1,10 +1,13 @@
     QA output created by 350
     Create and format
     Zero punch
    +fallocate: No such device
     Punch range past EOD
    +fallocate: No such device
     Check contents
    ...
    (Run 'diff -u tests/generic/350.out /root/src/xfstests-dev/results//generic/350.out.bad'  to see the entire diff)
generic/351      [not run] xfs_io finsert failed (old kernel/wrong fs?)
generic/352      [not run] this test requires a valid $SCRATCH_DEV
generic/353      [not run] this test requires a valid $SCRATCH_DEV
generic/354      [not run] this test requires a valid $SCRATCH_DEV
generic/355      [not run] fsgqa user not defined.
generic/356      [not run] this test requires a valid $SCRATCH_DEV
generic/357      [not run] this test requires a valid $SCRATCH_DEV
generic/358      [not run] this test requires a valid $SCRATCH_DEV
generic/359      [not run] this test requires a valid $SCRATCH_DEV
generic/360 0s ... 1s
generic/361      [not run] this test requires a valid $SCRATCH_DEV
generic/362      [not run] this test requires a valid $SCRATCH_DEV
generic/363      [not run] this test requires a valid $SCRATCH_DEV
generic/364      [not run] this test requires a valid $SCRATCH_DEV
generic/365      [not run] this test requires a valid $SCRATCH_DEV
generic/366      [not run] this test requires a valid $SCRATCH_DEV
generic/367      [not run] this test requires a valid $SCRATCH_DEV
generic/368      [not run] this test requires a valid $SCRATCH_DEV
generic/369      [not run] this test requires a valid $SCRATCH_DEV
generic/370      [not run] this test requires a valid $SCRATCH_DEV
generic/371      [not run] this test requires a valid $SCRATCH_DEV
generic/372      [not run] this test requires a valid $SCRATCH_DEV
generic/373      [not run] this test requires a valid $SCRATCH_DEV
generic/374      [not run] this test requires a valid $SCRATCH_DEV
generic/375      [not run] ACLs not supported by this filesystem type: nfs
generic/376      [not run] this test requires a valid $SCRATCH_DEV
generic/377      [not run] this test requires a valid $SCRATCH_DEV
generic/378      [not run] fsgqa user not defined.
Ran: generic/001 generic/002 generic/005 generic/006 generic/007 generic/011 generic/013 generic/014 generic/023 generic/028 generic/035 generic/036 generic/074 generic/075 generic/080 generic/086 generic/087 generic/088 generic/089 generic/091 generic/112 generic/113 generic/126 generic/127 generic/131 generic/133 generic/184 generic/198 generic/207 generic/208 generic/209 generic/210 generic/211 generic/212 generic/213 generic/214 generic/215 generic/221 generic/228 generic/236 generic/239 generic/240 generic/241 generic/245 generic/246 generic/247 generic/248 generic/249 generic/257 generic/258 generic/263 generic/285 generic/286 generic/308 generic/309 generic/310 generic/313 generic/315 generic/323 generic/347 generic/350 generic/360
Not run: generic/003 generic/004 generic/008 generic/009 generic/010 generic/012 generic/015 generic/016 generic/017 generic/018 generic/019 generic/020 generic/021 generic/022 generic/024 generic/025 generic/026 generic/027 generic/029 generic/030 generic/031 generic/032 generic/033 generic/034 generic/037 generic/038 generic/039 generic/040 generic/041 generic/042 generic/043 generic/044 generic/045 generic/046 generic/047 generic/048 generic/049 generic/050 generic/051 generic/052 generic/053 generic/054 generic/055 generic/056 generic/057 generic/058 generic/059 generic/060 generic/061 generic/062 generic/063 generic/064 generic/065 generic/066 generic/067 generic/068 generic/069 generic/070 generic/071 generic/072 generic/073 generic/076 generic/077 generic/078 generic/079 generic/081 generic/082 generic/083 generic/084 generic/085 generic/090 generic/092 generic/093 generic/094 generic/095 generic/096 generic/097 generic/098 generic/099 generic/100 generic/101 generic/102 generic/103 generic/104 generic/105 generic/106 generic/107 generic/108 generic/109 generic/110 generic/111 generic/114 generic/115 generic/116 generic/117 generic/118 generic/119 generic/120 generic/121 generic/122 generic/123 generic/124 generic/125 generic/128 generic/129 generic/130 generic/132 generic/134 generic/135 generic/136 generic/137 generic/138 generic/139 generic/140 generic/141 generic/142 generic/143 generic/144 generic/145 generic/146 generic/147 generic/148 generic/149 generic/150 generic/151 generic/152 generic/153 generic/154 generic/155 generic/156 generic/157 generic/158 generic/159 generic/160 generic/161 generic/162 generic/163 generic/164 generic/165 generic/166 generic/167 generic/168 generic/169 generic/170 generic/171 generic/172 generic/173 generic/174 generic/175 generic/176 generic/177 generic/178 generic/179 generic/180 generic/181 generic/182 generic/183 generic/185 generic/186 generic/187 generic/188 generic/189 generic/190 generic/191 generic/192 generic/193 generic/194 generic/195 generic/196 generic/197
 generic/199 generic/200 generic/201 generic/202 generic/203 generic/204 generic/205 generic/206 generic/216 generic/217 generic/218 generic/219 generic/220 generic/222 generic/223 generic/224 generic/225 generic/226 generic/227 generic/229 generic/230 generic/231 generic/232 generic/233 generic/234 generic/235 generic/237 generic/238 generic/242 generic/243 generic/244 generic/250 generic/251 generic/252 generic/253 generic/254 generic/255 generic/256 generic/259 generic/260 generic/261 generic/262 generic/264 generic/265 generic/266 generic/267 generic/268 generic/269 generic/270 generic/271 generic/272 generic/273 generic/274 generic/275 generic/276 generic/277 generic/278 generic/279 generic/280 generic/281 generic/282 generic/283 generic/284 generic/287 generic/288 generic/289 generic/290 generic/291 generic/292 generic/293 generic/294 generic/295 generic/296 generic/297 generic/298 generic/299 generic/300 generic/301 generic/302 generic/303 generic/304 generic/305 generic/306 generic/307 generic/311 generic/312 generic/314 generic/316 generic/317 generic/318 generic/319 generic/320 generic/321 generic/322 generic/324 generic/325 generic/326 generic/327 generic/328 generic/329 generic/330 generic/331 generic/332 generic/333 generic/334 generic/335 generic/336 generic/337 generic/338 generic/339 generic/340 generic/341 generic/342 generic/343 generic/344 generic/345 generic/346 generic/348 generic/349 generic/351 generic/352 generic/353 generic/354 generic/355 generic/356 generic/357 generic/358 generic/359 generic/361 generic/362 generic/363 generic/364 generic/365 generic/366 generic/367 generic/368 generic/369 generic/370 generic/371 generic/372 generic/373 generic/374 generic/375 generic/376 generic/377 generic/378
Failures: generic/035 generic/087 generic/088 generic/089 generic/126 generic/184 generic/285 generic/347 generic/350
Failed 9 of 62 tests


Hmm, not sure if this good or bad. Does it help?

cheers,
daniel

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

* Re: [PATCH 0/2] NFS: Use complete() instead complete_all()
  2016-09-27  7:42       ` Daniel Wagner
@ 2016-09-27  8:33         ` Daniel Wagner
  2016-09-27 17:15           ` Anna Schumaker
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Wagner @ 2016-09-27  8:33 UTC (permalink / raw)
  To: Anna Schumaker, Daniel Wagner, linux-nfs; +Cc: Trond Myklebust, linux-kernel

On 09/27/2016 09:42 AM, Daniel Wagner wrote:
> Failures: generic/035 generic/087 generic/088 generic/089 generic/126 generic/184 generic/285 generic/347 generic/350
> Failed 9 of 62 tests
> 
> Hmm, not sure if this good or bad. Does it help?

FWIW, running the same tests on non patched kernel gives the same result:

Failures: generic/035 generic/087 generic/088 generic/089 generic/126 generic/184 generic/285 generic/347 generic/350
Failed 9 of 62 tests

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

* Re: [PATCH 0/2] NFS: Use complete() instead complete_all()
  2016-09-27  8:33         ` Daniel Wagner
@ 2016-09-27 17:15           ` Anna Schumaker
  0 siblings, 0 replies; 9+ messages in thread
From: Anna Schumaker @ 2016-09-27 17:15 UTC (permalink / raw)
  To: Daniel Wagner, Daniel Wagner, linux-nfs; +Cc: Trond Myklebust, linux-kernel

On 09/27/2016 04:33 AM, Daniel Wagner wrote:
> On 09/27/2016 09:42 AM, Daniel Wagner wrote:
>> Failures: generic/035 generic/087 generic/088 generic/089 generic/126 generic/184 generic/285 generic/347 generic/350
>> Failed 9 of 62 tests
>>
>> Hmm, not sure if this good or bad. Does it help?
> 
> FWIW, running the same tests on non patched kernel gives the same result:

Thanks for testing!  If it has the same results before and after your patches then you should be good :).  I've seen different sets of failed tests for different underlying filesystems, so I don't think it's a big deal that we have different failed tests here.

Thanks again,
Anna

> 
> Failures: generic/035 generic/087 generic/088 generic/089 generic/126 generic/184 generic/285 generic/347 generic/350
> Failed 9 of 62 tests
> 
> 
> 

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

end of thread, other threads:[~2016-09-27 17:19 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-22 11:54 [PATCH 0/2] NFS: Use complete() instead complete_all() Daniel Wagner
2016-09-22 11:54 ` [PATCH 1/2] NFS: direct: use complete() instead of complete_all() Daniel Wagner
2016-09-22 11:54 ` [PATCH 2/2] NFS: cache_lib: " Daniel Wagner
2016-09-23 13:48 ` [PATCH 0/2] NFS: Use complete() instead complete_all() Anna Schumaker
2016-09-26  5:33   ` Daniel Wagner
2016-09-26 13:31     ` Anna Schumaker
2016-09-27  7:42       ` Daniel Wagner
2016-09-27  8:33         ` Daniel Wagner
2016-09-27 17:15           ` Anna Schumaker

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).