qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to check when "raw" format driver uses a "regular" file?


From: Kevin Wolf
Subject: Re: How to check when "raw" format driver uses a "regular" file?
Date: Mon, 25 Jan 2021 16:43:16 +0100

Am 25.01.2021 um 16:05 hat Philippe Mathieu-Daudé geschrieben:
> Is it possible to restrict a block driver to a particular set of
> options? In my case I'd like to restrict the raw driver to regular files.
> 
> I noticed the NFS driver does it locally in nfs_client_open(),
> and FUSE has is_regular_file() -- which is POSIX specific however.
> 
> When a backend is a SCSI drive, the block layer provide the blk_is_sg()
> method to test it.
> 1/ Should I provide a similar blk_is_regular_file()?
> 
> 2/ There is no oslib function to check for regular file,
> should I add one too?

I find this question confusing because on one hand you're talking about
block driver implementations like NFS, but on the other hand about SCSI
devices, which are users, not implementations of block drivers.

At which level is the code where you think you need to make this
distinction?

The other problem is that "is this a regular file?" is probably not what
you're really interested in. The content of an image can be spread
across several files (for example, consider backing files) or not use a
local file descriptor at all (network protocol drivers), and block layer
functions should ideally make sense for all drivers unless something can
only possibly make sense for a single driver (blk_is_sg might be a case
of this).

I assume that you are interested in some specific property that regular
files happen to provide. If at all possible, we shouldn't check for a
specific backend type, but for capabilities or properties of a given
block node.

So what are you really trying to do here?

Kevin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]