From 385cfbfa477ecb2505f1a9a751ccc8f095c25891 Mon Sep 17 00:00:00 2001 From: fanyong Date: Mon, 30 Oct 2006 10:31:28 +0000 Subject: [PATCH] Small fix. --- lustre/mdd/mdd_object.c | 9 ++++----- lustre/mdd/mdd_permission.c | 4 ++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index 7811d29..a762ea3 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -1062,11 +1062,11 @@ static int accmode(struct mdd_object *mdd_obj, int flags) return 0; #endif if (flags & FMODE_READ) - res = MAY_READ; + res |= MAY_READ; if (flags & (FMODE_WRITE | MDS_OPEN_TRUNC | MDS_OPEN_APPEND)) res |= MAY_WRITE; if (flags & MDS_FMODE_EXEC) - res = MAY_EXEC; + res |= MAY_EXEC; return res; } @@ -1103,15 +1103,14 @@ static int mdd_open_sanity_check(const struct lu_env *env, * actually live on the filesystem itself, and as such you * can write to them even if the filesystem is read-only. */ - if (S_ISFIFO(tmp_la->la_mode) || S_ISSOCK(tmp_la->la_mode) || - S_ISBLK(tmp_la->la_mode) || S_ISCHR(tmp_la->la_mode)) + if (S_ISFIFO(tmp_la->la_mode) || S_ISSOCK(tmp_la->la_mode)) flag &= ~O_TRUNC; /* * An append-only file must be opened in append mode for writing. */ if (mdd_is_append(obj)) { - if ((flag & FMODE_WRITE) && !(flag & O_APPEND)) + if ((mode & FMODE_WRITE) && !(flag & O_APPEND)) RETURN(-EPERM); if (flag & O_TRUNC) RETURN(-EPERM); diff --git a/lustre/mdd/mdd_permission.c b/lustre/mdd/mdd_permission.c index dff447d..0a0ee95 100644 --- a/lustre/mdd/mdd_permission.c +++ b/lustre/mdd/mdd_permission.c @@ -207,6 +207,10 @@ int mdd_acl_def_get(const struct lu_env *env, struct mdd_object *mdd_obj, { struct dt_object *next = mdd_object_child(mdd_obj); int rc; + ENTRY; + + if (ma->ma_valid & MA_ACL_DEF) + RETURN(0); rc = next->do_ops->do_xattr_get(env, next, mdd_buf_get(env, ma->ma_acl, -- 1.8.3.1