Messages in this thread | | | Date | Sun, 18 Jun 2006 19:33:20 +0100 | From | Al Viro <> | Subject | Re: [RFC][PATCH 03/20] Add vfsmount writer count |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |