OPTION(filestore_zfs_snap, OPT_BOOL, false) // zfsonlinux is still unstable
OPTION(filestore_fsync_flushes_journal_data, OPT_BOOL, false)
OPTION(filestore_fiemap, OPT_BOOL, false) // (try to) use fiemap
+
+// (try to) use extsize for alloc hint
+// WARNING: extsize seems to trigger data corruption in xfs -- that is why it is
+// off by default, see bug #8830
+OPTION(filestore_xfs_extsize, OPT_BOOL, false)
+
OPTION(filestore_journal_parallel, OPT_BOOL, false)
OPTION(filestore_journal_writeahead, OPT_BOOL, false)
OPTION(filestore_journal_trailing, OPT_BOOL, false)
goto out_close;
}
- ret = set_extsize(fd, 1U << 15); // a few pages
- if (ret) {
- ret = 0;
- dout(0) << "detect_feature: failed to set test file extsize, assuming extsize is NOT supported" << dendl;
- goto out_close;
+ if (g_conf->filestore_xfs_extsize) {
+ ret = set_extsize(fd, 1U << 15); // a few pages
+ if (ret) {
+ ret = 0;
+ dout(0) << "detect_feature: failed to set test file extsize, assuming extsize is NOT supported" << dendl;
+ goto out_close;
+ } else {
+ dout(0) << "detect_feature: extsize is supported" << dendl;
+ m_has_extsize = true;
+ }
+ } else {
+ dout(0) << "detect_feature: extsize is disabled by conf" << dendl;
}
- dout(0) << "detect_feature: extsize is supported" << dendl;
- m_has_extsize = true;
out_close:
TEMP_FAILURE_RETRY(::close(fd));