diff options
Diffstat (limited to 'src/kernel/xloop_main.c')
-rw-r--r-- | src/kernel/xloop_main.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/kernel/xloop_main.c b/src/kernel/xloop_main.c index de1fc3d..441282a 100644 --- a/src/kernel/xloop_main.c +++ b/src/kernel/xloop_main.c @@ -877,11 +877,6 @@ static int xloop_configure(struct xloop_device *xlo, fmode_t mode, if (error) goto out_unlock; - error = xloop_file_fmt_init(xlo->xlo_fmt, - config->info.xlo_file_fmt_type); - if (error) - goto out_unlock; - set_device_ro(bdev, (xlo->xlo_flags & XLO_FLAGS_READ_ONLY) != 0); xlo->use_dio = xlo->xlo_flags & XLO_FLAGS_DIRECT_IO; @@ -890,6 +885,11 @@ static int xloop_configure(struct xloop_device *xlo, fmode_t mode, xlo->old_gfp_mask = mapping_gfp_mask(mapping); mapping_set_gfp_mask(mapping, xlo->old_gfp_mask & ~(__GFP_IO|__GFP_FS)); + error = xloop_file_fmt_init(xlo->xlo_fmt, + config->info.xlo_file_fmt_type); + if (error) + goto out_unlock; + if (!(xlo->xlo_flags & XLO_FLAGS_READ_ONLY) && file->f_op->fsync) blk_queue_write_cache(xlo->xlo_queue, true, false); |