]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
linux shim: Fix dropped O_DIRECT flag
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 Mar 2023 15:30:16 +0000 (10:30 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 Mar 2023 15:30:16 +0000 (10:30 -0500)
A recent libbcachefs update accidentally committed a change that dropped
the O_DIRECT flag - we definitely didn't want to do that.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
linux/blkdev.c

index 805d55dbf7411324a8aa133ff46594be10cd51b0..45b03fbac1e9a15a50988c06b886f44fdd41b4ef 100644 (file)
@@ -192,7 +192,7 @@ struct block_device *blkdev_get_by_path(const char *path, fmode_t mode,
        if (buffered_fd < 0)
                return ERR_PTR(-errno);
 
-       fd = open(path, flags);
+       fd = open(path, flags|O_DIRECT);
        if (fd < 0)
                fd = dup(buffered_fd);
        if (fd < 0) {
@@ -200,7 +200,7 @@ struct block_device *blkdev_get_by_path(const char *path, fmode_t mode,
                return ERR_PTR(-errno);
        }
 
-       sync_fd = open(path, flags|O_SYNC);
+       sync_fd = open(path, flags|O_DIRECT|O_SYNC);
        if (sync_fd < 0)
                sync_fd = open(path, flags|O_SYNC);
        if (sync_fd < 0) {