Re: [PATCH] pstore/blk: Use the normal block device I/O path

From: Al Viro
Date: Mon Jun 14 2021 - 16:10:00 EST


On Mon, Jun 14, 2021 at 01:04:21PM -0700, Kees Cook wrote:

> static ssize_t psblk_generic_blk_write(const char *buf, size_t bytes,
> loff_t pos)
> {

> /* Console/Ftrace backend may handle buffer until flush dirty zones */
> if (in_interrupt() || irqs_disabled())
> return -EBUSY;

> + return kernel_write(psblk_file, buf, bytes, &pos);

In which locking environments could that be called? The checks above
look like that thing could be called from just about any context;
could that happen when the caller is holding a page locked?

IOW, what are those checks really trying to do?