On Wed, Jun 07, 2006 at 05:10:30PM -0700, Dave Hansen wrote: > > > Signed-off-by: Dave Hansen <haveblue@xxxxxxxxxx> > --- > > lxc-dave/net/unix/af_unix.c | 16 ++++++++++++---- > 1 files changed, 12 insertions(+), 4 deletions(-) > > diff -puN net/unix/af_unix.c~elevate-writers-opens-part4 net/unix/af_unix.c > --- lxc/net/unix/af_unix.c~elevate-writers-opens-part4 2006-06-07 16:53:24.000000000 -0700 > +++ lxc-dave/net/unix/af_unix.c 2006-06-07 16:53:24.000000000 -0700 > @@ -676,21 +676,27 @@ static struct sock *unix_find_other(stru > err = path_lookup(sunname->sun_path, LOOKUP_FOLLOW, &nd); > if (err) > goto fail; > + > + err = mnt_want_write(nd.mnt); > + if (err) > + goto put_path_fail; > + > err = vfs_permission(&nd, MAY_WRITE); > if (err) > - goto put_fail; > + goto put_write_fail; mnt_drop_write_fail maybe? btw, IMHO *drop_write* would be enough for the error labels, no need for the mnt part best, Herbert > err = -ECONNREFUSED; > if (!S_ISSOCK(nd.dentry->d_inode->i_mode)) > - goto put_fail; > + goto put_write_fail; > u=unix_find_socket_byinode(nd.dentry->d_inode); > if (!u) > - goto put_fail; > + goto put_write_fail; > > if (u->sk_type == type) > touch_atime(nd.mnt, nd.dentry); > > path_release(&nd); > + mnt_drop_write(nd.mnt); > > err=-EPROTOTYPE; > if (u->sk_type != type) { > @@ -710,7 +716,9 @@ static struct sock *unix_find_other(stru > } > return u; > > -put_fail: > +put_write_fail: > + mnt_drop_write(nd.mnt); > +put_path_fail: > path_release(&nd); > fail: > *error=err; > _ - 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