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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html