]> Git Repo - linux.git/blobdiff - fs/xfs/xfs_super.c
Merge tag 'vfs-6.12.blocksize' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs
[linux.git] / fs / xfs / xfs_super.c
index 26767745d9fd01d60d7da807a92165113d97dbab..fbb3a1594c0dccc40aef49f93b9db31e5ec7d599 100644 (file)
@@ -1638,16 +1638,28 @@ xfs_fs_fill_super(
                goto out_free_sb;
        }
 
-       /*
-        * Until this is fixed only page-sized or smaller data blocks work.
-        */
        if (mp->m_sb.sb_blocksize > PAGE_SIZE) {
-               xfs_warn(mp,
-               "File system with blocksize %d bytes. "
-               "Only pagesize (%ld) or less will currently work.",
+               size_t max_folio_size = mapping_max_folio_size_supported();
+
+               if (!xfs_has_crc(mp)) {
+                       xfs_warn(mp,
+"V4 Filesystem with blocksize %d bytes. Only pagesize (%ld) or less is supported.",
                                mp->m_sb.sb_blocksize, PAGE_SIZE);
-               error = -ENOSYS;
-               goto out_free_sb;
+                       error = -ENOSYS;
+                       goto out_free_sb;
+               }
+
+               if (mp->m_sb.sb_blocksize > max_folio_size) {
+                       xfs_warn(mp,
+"block size (%u bytes) not supported; Only block size (%zu) or less is supported",
+                               mp->m_sb.sb_blocksize, max_folio_size);
+                       error = -ENOSYS;
+                       goto out_free_sb;
+               }
+
+               xfs_warn(mp,
+"EXPERIMENTAL: V5 Filesystem with Large Block Size (%d bytes) enabled.",
+                       mp->m_sb.sb_blocksize);
        }
 
        /* Ensure this filesystem fits in the page cache limits */
This page took 0.033936 seconds and 4 git commands to generate.