diff
 void page_cache_ra_order(struct readahead_control *ractl,
 		struct file_ra_state *ra, unsigned int new_order)
 {
     // ... (existing code)
-    filemap_invalidate_lock_shared(mapping);
+    if (filemap_invalidate_lock_shared(mapping) != 0) {
+        // Handle lock acquisition failure
+        return;
+    }
     // ... (existing code)
+    goto unlock;
+
+unlock:
     filemap_invalidate_unlock_shared(mapping);
 }
