diff mbox

[3/3] ceph: make ceph ACL for symlink inheritable

Message ID 1392355784-10422-4-git-send-email-lucienchao@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Guangliang Zhao Feb. 14, 2014, 5:29 a.m. UTC
Default ACL couldn't be inherited by the symlink in the
parent directory. This resolve it.

Signed-off-by: Guangliang Zhao <lucienchao@gmail.com>
---
 fs/ceph/dir.c |    4 ++++
 1 file changed, 4 insertions(+)

Comments

Alex Elder Feb. 14, 2014, 1:06 p.m. UTC | #1
On 02/13/2014 11:29 PM, Guangliang Zhao wrote:
> Default ACL couldn't be inherited by the symlink in the
> parent directory. This resolve it.

This looks good to me, and it seems to be consistent
with what other file systems do.

Reviewed-by: Alex Elder <elder@linaro.org>

> Signed-off-by: Guangliang Zhao <lucienchao@gmail.com>
> ---
>  fs/ceph/dir.c |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
> index 619616d..2650570 100644
> --- a/fs/ceph/dir.c
> +++ b/fs/ceph/dir.c
> @@ -735,6 +735,10 @@ static int ceph_symlink(struct inode *dir, struct dentry *dentry,
>  	if (!err && !req->r_reply_info.head->is_dentry)
>  		err = ceph_handle_notrace_create(dir, dentry);
>  	ceph_mdsc_put_request(req);
> +
> +	if (!err)
> +		err = ceph_init_acl(dentry, dentry->d_inode, dir);
> +
>  	if (err)
>  		d_drop(dentry);
>  	return err;
> 

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sage Weil Feb. 16, 2014, 6:27 p.m. UTC | #2
This one is subsumed by Zheng's updated patch.

All of this is now in the testing branch.  Assuming all goes well I'll 
send it to Linus in the next day or two.

Thanks!
sage

On Fri, 14 Feb 2014, Alex Elder wrote:

> On 02/13/2014 11:29 PM, Guangliang Zhao wrote:
> > Default ACL couldn't be inherited by the symlink in the
> > parent directory. This resolve it.
> 
> This looks good to me, and it seems to be consistent
> with what other file systems do.
> 
> Reviewed-by: Alex Elder <elder@linaro.org>
> 
> > Signed-off-by: Guangliang Zhao <lucienchao@gmail.com>
> > ---
> >  fs/ceph/dir.c |    4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
> > index 619616d..2650570 100644
> > --- a/fs/ceph/dir.c
> > +++ b/fs/ceph/dir.c
> > @@ -735,6 +735,10 @@ static int ceph_symlink(struct inode *dir, struct dentry *dentry,
> >  	if (!err && !req->r_reply_info.head->is_dentry)
> >  		err = ceph_handle_notrace_create(dir, dentry);
> >  	ceph_mdsc_put_request(req);
> > +
> > +	if (!err)
> > +		err = ceph_init_acl(dentry, dentry->d_inode, dir);
> > +
> >  	if (err)
> >  		d_drop(dentry);
> >  	return err;
> > 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
index 619616d..2650570 100644
--- a/fs/ceph/dir.c
+++ b/fs/ceph/dir.c
@@ -735,6 +735,10 @@  static int ceph_symlink(struct inode *dir, struct dentry *dentry,
 	if (!err && !req->r_reply_info.head->is_dentry)
 		err = ceph_handle_notrace_create(dir, dentry);
 	ceph_mdsc_put_request(req);
+
+	if (!err)
+		err = ceph_init_acl(dentry, dentry->d_inode, dir);
+
 	if (err)
 		d_drop(dentry);
 	return err;