Re: missing mnt_drop_write() on open error
From: Dave Hansen
Date: Wed Sep 26 2007 - 14:09:20 EST
On Wed, 2007-09-26 at 19:50 +0200, Miklos Szeredi wrote:
> Maybe. Can we do the mnt_want_write() from __dentry_open(), instead
> of may_open()? That would be a lot cleaner.
I'll explore that. It may make very good sense.
> Btw, may_open() doesn't do mnt_want_write() around the truncation if
> file is opened with O_TRUNC | O_RDONLY.
What's the path to may_open() in that case? open_namei() should wrap
all callers other than nfs, and it does:
/* O_TRUNC implies we need access checks for write permissions */
if (flag & O_TRUNC)
acc_mode |= MAY_WRITE;
Which should trigger the may_open() code.
later in open_namei():
error = may_open(nd, acc_mode, flag);
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/