diff options
author | James Morris <jmorris@namei.org> | 2009-02-05 19:01:45 -0500 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2009-02-05 19:01:45 -0500 |
commit | cb5629b10d64a8006622ce3a52bc887d91057d69 (patch) | |
tree | 7c06d8f30783115e3384721046258ce615b129c5 /fs/dlm/recover.c | |
parent | 8920d5ad6ba74ae8ab020e90cc4d976980e68701 (diff) | |
parent | f01d1d546abb2f4028b5299092f529eefb01253a (diff) |
Merge branch 'master' into next
Conflicts:
fs/namei.c
Manually merged per:
diff --cc fs/namei.c
index 734f2b5,bbc15c2..0000000
--- a/fs/namei.c
+++ b/fs/namei.c
@@@ -860,9 -848,8 +849,10 @@@ static int __link_path_walk(const char
nd->flags |= LOOKUP_CONTINUE;
err = exec_permission_lite(inode);
if (err == -EAGAIN)
- err = vfs_permission(nd, MAY_EXEC);
+ err = inode_permission(nd->path.dentry->d_inode,
+ MAY_EXEC);
+ if (!err)
+ err = ima_path_check(&nd->path, MAY_EXEC);
if (err)
break;
@@@ -1525,14 -1506,9 +1509,14 @@@ int may_open(struct path *path, int acc
flag &= ~O_TRUNC;
}
- error = vfs_permission(nd, acc_mode);
+ error = inode_permission(inode, acc_mode);
if (error)
return error;
+
- error = ima_path_check(&nd->path,
++ error = ima_path_check(path,
+ acc_mode & (MAY_READ | MAY_WRITE | MAY_EXEC));
+ if (error)
+ return error;
/*
* An append-only file must be opened in append mode for writing.
*/
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'fs/dlm/recover.c')
-rw-r--r-- | fs/dlm/recover.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/dlm/recover.c b/fs/dlm/recover.c index 80aba5bdd4a4..eda43f362616 100644 --- a/fs/dlm/recover.c +++ b/fs/dlm/recover.c | |||
@@ -726,7 +726,7 @@ int dlm_create_root_list(struct dlm_ls *ls) | |||
726 | } | 726 | } |
727 | 727 | ||
728 | for (i = 0; i < ls->ls_rsbtbl_size; i++) { | 728 | for (i = 0; i < ls->ls_rsbtbl_size; i++) { |
729 | read_lock(&ls->ls_rsbtbl[i].lock); | 729 | spin_lock(&ls->ls_rsbtbl[i].lock); |
730 | list_for_each_entry(r, &ls->ls_rsbtbl[i].list, res_hashchain) { | 730 | list_for_each_entry(r, &ls->ls_rsbtbl[i].list, res_hashchain) { |
731 | list_add(&r->res_root_list, &ls->ls_root_list); | 731 | list_add(&r->res_root_list, &ls->ls_root_list); |
732 | dlm_hold_rsb(r); | 732 | dlm_hold_rsb(r); |
@@ -737,7 +737,7 @@ int dlm_create_root_list(struct dlm_ls *ls) | |||
737 | but no other recovery steps should do anything with them. */ | 737 | but no other recovery steps should do anything with them. */ |
738 | 738 | ||
739 | if (dlm_no_directory(ls)) { | 739 | if (dlm_no_directory(ls)) { |
740 | read_unlock(&ls->ls_rsbtbl[i].lock); | 740 | spin_unlock(&ls->ls_rsbtbl[i].lock); |
741 | continue; | 741 | continue; |
742 | } | 742 | } |
743 | 743 | ||
@@ -745,7 +745,7 @@ int dlm_create_root_list(struct dlm_ls *ls) | |||
745 | list_add(&r->res_root_list, &ls->ls_root_list); | 745 | list_add(&r->res_root_list, &ls->ls_root_list); |
746 | dlm_hold_rsb(r); | 746 | dlm_hold_rsb(r); |
747 | } | 747 | } |
748 | read_unlock(&ls->ls_rsbtbl[i].lock); | 748 | spin_unlock(&ls->ls_rsbtbl[i].lock); |
749 | } | 749 | } |
750 | out: | 750 | out: |
751 | up_write(&ls->ls_root_sem); | 751 | up_write(&ls->ls_root_sem); |
@@ -775,7 +775,7 @@ void dlm_clear_toss_list(struct dlm_ls *ls) | |||
775 | int i; | 775 | int i; |
776 | 776 | ||
777 | for (i = 0; i < ls->ls_rsbtbl_size; i++) { | 777 | for (i = 0; i < ls->ls_rsbtbl_size; i++) { |
778 | write_lock(&ls->ls_rsbtbl[i].lock); | 778 | spin_lock(&ls->ls_rsbtbl[i].lock); |
779 | list_for_each_entry_safe(r, safe, &ls->ls_rsbtbl[i].toss, | 779 | list_for_each_entry_safe(r, safe, &ls->ls_rsbtbl[i].toss, |
780 | res_hashchain) { | 780 | res_hashchain) { |
781 | if (dlm_no_directory(ls) || !is_master(r)) { | 781 | if (dlm_no_directory(ls) || !is_master(r)) { |
@@ -783,7 +783,7 @@ void dlm_clear_toss_list(struct dlm_ls *ls) | |||
783 | dlm_free_rsb(r); | 783 | dlm_free_rsb(r); |
784 | } | 784 | } |
785 | } | 785 | } |
786 | write_unlock(&ls->ls_rsbtbl[i].lock); | 786 | spin_unlock(&ls->ls_rsbtbl[i].lock); |
787 | } | 787 | } |
788 | } | 788 | } |
789 | 789 | ||