@@ -361,8 +361,10 @@ static int cachefiles_read_backing_file_one(struct cachefiles_object *object,
361
361
362
362
read_error :
363
363
_debug ("read error %d" , ret );
364
- if (ret == - ENOMEM )
364
+ if (ret == - ENOMEM ) {
365
+ fscache_retrieval_complete (op , 1 );
365
366
goto out ;
367
+ }
366
368
io_error :
367
369
cachefiles_io_error_obj (object , "Page read error on backing file" );
368
370
fscache_retrieval_complete (op , 1 );
@@ -551,6 +553,7 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
551
553
if (ret < 0 ) {
552
554
if (ret == - EEXIST ) {
553
555
page_cache_release (netpage );
556
+ fscache_retrieval_complete (op , 1 );
554
557
continue ;
555
558
}
556
559
goto nomem ;
@@ -627,6 +630,7 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
627
630
if (ret < 0 ) {
628
631
if (ret == - EEXIST ) {
629
632
page_cache_release (netpage );
633
+ fscache_retrieval_complete (op , 1 );
630
634
continue ;
631
635
}
632
636
goto nomem ;
@@ -645,9 +649,9 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
645
649
646
650
/* the netpage is unlocked and marked up to date here */
647
651
fscache_end_io (op , netpage , 0 );
648
- fscache_retrieval_complete (op , 1 );
649
652
page_cache_release (netpage );
650
653
netpage = NULL ;
654
+ fscache_retrieval_complete (op , 1 );
651
655
continue ;
652
656
}
653
657
@@ -682,15 +686,17 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
682
686
nomem :
683
687
_debug ("nomem" );
684
688
ret = - ENOMEM ;
685
- goto out ;
689
+ goto record_page_complete ;
686
690
687
691
read_error :
688
692
_debug ("read error %d" , ret );
689
693
if (ret == - ENOMEM )
690
- goto out ;
694
+ goto record_page_complete ;
691
695
io_error :
692
696
cachefiles_io_error_obj (object , "Page read error on backing file" );
693
697
ret = - ENOBUFS ;
698
+ record_page_complete :
699
+ fscache_retrieval_complete (op , 1 );
694
700
goto out ;
695
701
}
696
702
0 commit comments