2001-03-13 02:06:48

by Chris Mason

[permalink] [raw]
Subject: named pipe writes on readonly filesystems

Hello everyone,

Since fs/pipe.c:pipe_write() calls mark_inode_dirty, and it is legal to
write to a named pipe on a readonly filesystem, we can end up writing an
inode on a readonly FS.

reiserfs prints a warning whenever someone tries to write an inode on a
readonly FS, so we've been getting a few complaints about this.

I see at least 3 choices:

drop the reiserfs warning, it was only there to chase things similar to the
remount root readonly bug in 2.4.0.

change mark_inode_dirty or write_inode to exit early on readonly
filesystems.

change pipe_write to leave the inode clean when the FS is readonly.

Does anyone have a preference? I'd rather not see each FS have to check
for this on their own, but the other filesystems aren't as picky as
reiserfs in this case ;-)

-chris


2001-03-13 02:16:18

by Alexander Viro

[permalink] [raw]
Subject: Re: named pipe writes on readonly filesystems



On Mon, 12 Mar 2001, Chris Mason wrote:

> Hello everyone,
>
> Since fs/pipe.c:pipe_write() calls mark_inode_dirty, and it is legal to
> write to a named pipe on a readonly filesystem, we can end up writing an
> inode on a readonly FS.

I would check that in pipe_write()...
Cheers,
Al

2001-03-13 09:24:50

by Ingo Oeser

[permalink] [raw]
Subject: Re: named pipe writes on readonly filesystems

On Mon, Mar 12, 2001 at 09:15:33PM -0500, Alexander Viro wrote:
> On Mon, 12 Mar 2001, Chris Mason wrote:
> > Since fs/pipe.c:pipe_write() calls mark_inode_dirty, and it is legal to
> > write to a named pipe on a readonly filesystem, we can end up writing an
> > inode on a readonly FS.
>
> I would check that in pipe_write()...

So atime and mtime of a named pipe are meaningless in general?
That would make sense, since you cannot access the data anymore,
once they are through the pipe.

Regards

Ingo Oeser
--
10.+11.03.2001 - 3. Chemnitzer LinuxTag <http://www.tu-chemnitz.de/linux/tag>
<<<<<<<<<<<< been there and had much fun >>>>>>>>>>>>

2001-03-13 09:27:49

by Alexander Viro

[permalink] [raw]
Subject: Re: named pipe writes on readonly filesystems



On Tue, 13 Mar 2001, Ingo Oeser wrote:

> On Mon, Mar 12, 2001 at 09:15:33PM -0500, Alexander Viro wrote:
> > On Mon, 12 Mar 2001, Chris Mason wrote:
> > > Since fs/pipe.c:pipe_write() calls mark_inode_dirty, and it is legal to
> > > write to a named pipe on a readonly filesystem, we can end up writing an
> > > inode on a readonly FS.
> >
> > I would check that in pipe_write()...
>
> So atime and mtime of a named pipe are meaningless in general?
> That would make sense, since you cannot access the data anymore,
> once they are through the pipe.

Huh? They are meaningless if fs is read-only. Can't change inode in
such situation... For normal filesystems it's "how long ago somebody
did <type of access> with this FIFO".