ocfs2: add ocfs2_init_acl in mknod
We need to get the parent directories acls and let the new child inherit it. To this, we add additional calculations for data/metadata allocation. Signed-off-by: Tiger Yang <tiger.yang@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
This commit is contained in:
@@ -61,6 +61,7 @@
|
||||
#include "sysfile.h"
|
||||
#include "uptodate.h"
|
||||
#include "xattr.h"
|
||||
#include "acl.h"
|
||||
|
||||
#include "buffer_head_io.h"
|
||||
|
||||
@@ -302,14 +303,13 @@ static int ocfs2_mknod(struct inode *dir,
|
||||
}
|
||||
}
|
||||
|
||||
/* calculate meta data/clusters for setting security xattr */
|
||||
if (si.enable) {
|
||||
status = ocfs2_calc_security_init(dir, &si, &want_clusters,
|
||||
&xattr_credits, &xattr_ac);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto leave;
|
||||
}
|
||||
/* calculate meta data/clusters for setting security and acl xattr */
|
||||
status = ocfs2_calc_xattr_init(dir, parent_fe_bh, mode,
|
||||
&si, &want_clusters,
|
||||
&xattr_credits, &xattr_ac);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto leave;
|
||||
}
|
||||
|
||||
/* Reserve a cluster if creating an extent based directory. */
|
||||
@@ -363,6 +363,13 @@ static int ocfs2_mknod(struct inode *dir,
|
||||
inc_nlink(dir);
|
||||
}
|
||||
|
||||
status = ocfs2_init_acl(handle, inode, dir, new_fe_bh, parent_fe_bh,
|
||||
xattr_ac, data_ac);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto leave;
|
||||
}
|
||||
|
||||
if (si.enable) {
|
||||
status = ocfs2_init_security_set(handle, inode, new_fe_bh, &si,
|
||||
xattr_ac, data_ac);
|
||||
|
Reference in New Issue
Block a user