Re: [RFC][PATCH 03/20] Add vfsmount writer count

From: Al Viro
Date: Sun Jun 18 2006 - 14:32:09 EST


On Fri, Jun 16, 2006 at 04:12:15PM -0700, Dave Hansen wrote:
> +/*
> + * Must be called under write lock on mnt->mnt_sb->s_umount,
> + * this prevents concurrent decrements which could make the
> + * value -1, and test in mnt_want_write() wrongly succeed
> + */
> +static inline int mnt_make_readonly(struct vfsmount *mnt)
> +{
> + if (!atomic_dec_and_test(&mnt->mnt_writers)) {
> + atomic_inc(&mnt->mnt_writers);
> + return -EBUSY;
> + }
> + return 0;
> +}

Check in faccessat() could get screwed by that, if you just lose the
race with final writer going away. Then mnt_make_readonly() will
fail (as it should) and access(2) give -EROFS.
-
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/