On Thu 27-09-12 10:47:59, Eric Sandeen wrote: > I noticed that this can sneak past a frozen filesystem: > > # mkfifo /mnt/test/fifo > # echo foo > /mnt/test/fifo & > # fsfreeze -f /mnt/test > # cat /mnt/test/fifo > > and we get a warning that jbd2 has entered a transaction while frozen: > > WARNING: at fs/ext4/super.c:240 ext4_journal_start_sb+0xce/0xe0 [ext4]() (Not tainted) > > which is: WARN_ON(sb->s_writers.frozen == SB_FREEZE_COMPLETE); > > and we get there via the file_update_time() path in pipe_write(). > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > > Is this too big a hammer? file_update_time() is conditional... I think your patch is fine. Just skipping update of mtime could cause userspace issues (although they seem rather unlikely to me). So you can add Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > > diff --git a/fs/pipe.c b/fs/pipe.c > index 8d85d70..d19a709 100644 > --- a/fs/pipe.c > +++ b/fs/pipe.c > @@ -501,6 +501,7 @@ pipe_write(struct kiocb *iocb, const struct iovec *_iov, > > do_wakeup = 0; > ret = 0; > + sb_start_write(inode->i_sb); > mutex_lock(&inode->i_mutex); > pipe = inode->i_pipe; > > @@ -659,6 +660,7 @@ out: > if (err) > ret = err; > } > + sb_end_write(inode->i_sb); > return ret; > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html