Project

General

Profile

Actions

Bug #3607

closed

FileStore::_write conditional code for HAVE_SYNC_FILE_RANGE seems wrong

Added by Dan Mick over 11 years ago. Updated almost 11 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Development
Tags:
Backport:
Regression:
Severity:
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

I won't claim to fully understand this, but it looks wrong:

  // flush?
  if ((ssize_t)len < m_filestore_flush_min ||
#ifdef HAVE_SYNC_FILE_RANGE
      !m_filestore_flusher || !queue_flusher(fd, offset, len)
#else
      true
#endif
      ) {
    if (m_filestore_sync_flush)
      ::sync_file_range(fd, offset, len, SYNC_FILE_RANGE_WRITE);
    lfn_close(fd);
  }

Seems like the whole last if should be avoided in the #else case, at least.

Actions

Also available in: Atom PDF