Re: [patch 3/6] vfs: mountinfo stable peer group id

From: Al Viro
Date: Mon Mar 24 2008 - 05:35:15 EST


On Mon, Mar 24, 2008 at 01:19:41AM -0700, Ram Pai wrote:
> > * in do_change_type(), outside of vfsmount_lock, do invent_group_ids()
> > If it fails - bugger off, if not - proceed as now.
>
> Has it to be done outside vfsmount_lock? AFAICT, invent_group_ids()
> does not sleep, nor does change_mnt_propagation().

It does allocation. And no, GFP_ATOMIC is not appropriate for that.
The same goes for mount IDs, BTW, and there we _also_ don't need
vfsmount_lock - see my current tree, there we have clone_mnt()
serialized by namespace_sem in all cases.

> > * in attach_recursive_mnt() if IS_MNT_SHARED(dest_mnt) do
> > invent_group_ids() on the dest_mnt immediately and if it fails do
>
> I think you meant, invent_group_ids() on the source_mnt.
Yes

> But again
> applying invent_group_ids() on the source_mnt has to be done carefully,
> because, source_mnt may have been shared to begin with.

And? See the original posting - invent_group_ids() skips the vfsmounts
with already set group ID.
--
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/