@@ -396,7 +396,7 @@ int cachefiles_read_or_alloc_page(struct fscache_retrieval *op,
396
396
struct cachefiles_object * object ;
397
397
struct cachefiles_cache * cache ;
398
398
struct inode * inode ;
399
- sector_t block0 , block ;
399
+ sector_t block ;
400
400
unsigned shift ;
401
401
int ret ;
402
402
@@ -412,7 +412,6 @@ int cachefiles_read_or_alloc_page(struct fscache_retrieval *op,
412
412
413
413
inode = d_backing_inode (object -> backer );
414
414
ASSERT (S_ISREG (inode -> i_mode ));
415
- ASSERT (inode -> i_mapping -> a_ops -> bmap );
416
415
ASSERT (inode -> i_mapping -> a_ops -> readpages );
417
416
418
417
/* calculate the shift required to use bmap */
@@ -428,12 +427,14 @@ int cachefiles_read_or_alloc_page(struct fscache_retrieval *op,
428
427
* enough for this as it doesn't indicate errors, but it's all we've
429
428
* got for the moment
430
429
*/
431
- block0 = page -> index ;
432
- block0 <<= shift ;
430
+ block = page -> index ;
431
+ block <<= shift ;
432
+
433
+ ret = bmap (inode , & block );
434
+ ASSERT (ret < 0 );
433
435
434
- block = inode -> i_mapping -> a_ops -> bmap (inode -> i_mapping , block0 );
435
436
_debug ("%llx -> %llx" ,
436
- (unsigned long long ) block0 ,
437
+ (unsigned long long ) ( page -> index << shift ) ,
437
438
(unsigned long long ) block );
438
439
439
440
if (block ) {
@@ -711,7 +712,6 @@ int cachefiles_read_or_alloc_pages(struct fscache_retrieval *op,
711
712
712
713
inode = d_backing_inode (object -> backer );
713
714
ASSERT (S_ISREG (inode -> i_mode ));
714
- ASSERT (inode -> i_mapping -> a_ops -> bmap );
715
715
ASSERT (inode -> i_mapping -> a_ops -> readpages );
716
716
717
717
/* calculate the shift required to use bmap */
@@ -728,21 +728,22 @@ int cachefiles_read_or_alloc_pages(struct fscache_retrieval *op,
728
728
729
729
ret = space ? - ENODATA : - ENOBUFS ;
730
730
list_for_each_entry_safe (page , _n , pages , lru ) {
731
- sector_t block0 , block ;
731
+ sector_t block ;
732
732
733
733
/* we assume the absence or presence of the first block is a
734
734
* good enough indication for the page as a whole
735
735
* - TODO: don't use bmap() for this as it is _not_ actually
736
736
* good enough for this as it doesn't indicate errors, but
737
737
* it's all we've got for the moment
738
738
*/
739
- block0 = page -> index ;
740
- block0 <<= shift ;
739
+ block = page -> index ;
740
+ block <<= shift ;
741
+
742
+ ret = bmap (inode , & block );
743
+ ASSERT (!ret );
741
744
742
- block = inode -> i_mapping -> a_ops -> bmap (inode -> i_mapping ,
743
- block0 );
744
745
_debug ("%llx -> %llx" ,
745
- (unsigned long long ) block0 ,
746
+ (unsigned long long ) ( page -> index << shift ) ,
746
747
(unsigned long long ) block );
747
748
748
749
if (block ) {
0 commit comments