diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 12:24:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 12:24:53 -0500 |
commit | 1b9a3917366028cc451a98dd22e3bcd537d4e5c1 (patch) | |
tree | d911058720e0a9aeeaf9f407ccdc6fbf4047f47d /fs/namei.c | |
parent | 3661f00e2097676847deb01add1a0918044bd816 (diff) | |
parent | 71e1c784b24a026a490b3de01541fc5ee14ebc09 (diff) |
Merge branch 'audit.b3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
* 'audit.b3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: (22 commits)
[PATCH] fix audit_init failure path
[PATCH] EXPORT_SYMBOL patch for audit_log, audit_log_start, audit_log_end and audit_format
[PATCH] sem2mutex: audit_netlink_sem
[PATCH] simplify audit_free() locking
[PATCH] Fix audit operators
[PATCH] promiscuous mode
[PATCH] Add tty to syscall audit records
[PATCH] add/remove rule update
[PATCH] audit string fields interface + consumer
[PATCH] SE Linux audit events
[PATCH] Minor cosmetic cleanups to the code moved into auditfilter.c
[PATCH] Fix audit record filtering with !CONFIG_AUDITSYSCALL
[PATCH] Fix IA64 success/failure indication in syscall auditing.
[PATCH] Miscellaneous bug and warning fixes
[PATCH] Capture selinux subject/object context information.
[PATCH] Exclude messages by message type
[PATCH] Collect more inode information during syscall processing.
[PATCH] Pass dentry, not just name, in fsnotify creation hooks.
[PATCH] Define new range of userspace messages.
[PATCH] Filter rule comparators
...
Fixed trivial conflict in security/selinux/hooks.c
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/namei.c b/fs/namei.c index 712dfc77793b..98dc2e134362 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1353,6 +1353,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir) | |||
1353 | return -ENOENT; | 1353 | return -ENOENT; |
1354 | 1354 | ||
1355 | BUG_ON(victim->d_parent->d_inode != dir); | 1355 | BUG_ON(victim->d_parent->d_inode != dir); |
1356 | audit_inode_child(victim->d_name.name, victim->d_inode, dir->i_ino); | ||
1356 | 1357 | ||
1357 | error = permission(dir,MAY_WRITE | MAY_EXEC, NULL); | 1358 | error = permission(dir,MAY_WRITE | MAY_EXEC, NULL); |
1358 | if (error) | 1359 | if (error) |
@@ -1472,7 +1473,7 @@ int vfs_create(struct inode *dir, struct dentry *dentry, int mode, | |||
1472 | DQUOT_INIT(dir); | 1473 | DQUOT_INIT(dir); |
1473 | error = dir->i_op->create(dir, dentry, mode, nd); | 1474 | error = dir->i_op->create(dir, dentry, mode, nd); |
1474 | if (!error) | 1475 | if (!error) |
1475 | fsnotify_create(dir, dentry->d_name.name); | 1476 | fsnotify_create(dir, dentry); |
1476 | return error; | 1477 | return error; |
1477 | } | 1478 | } |
1478 | 1479 | ||
@@ -1799,7 +1800,7 @@ int vfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) | |||
1799 | DQUOT_INIT(dir); | 1800 | DQUOT_INIT(dir); |
1800 | error = dir->i_op->mknod(dir, dentry, mode, dev); | 1801 | error = dir->i_op->mknod(dir, dentry, mode, dev); |
1801 | if (!error) | 1802 | if (!error) |
1802 | fsnotify_create(dir, dentry->d_name.name); | 1803 | fsnotify_create(dir, dentry); |
1803 | return error; | 1804 | return error; |
1804 | } | 1805 | } |
1805 | 1806 | ||
@@ -1876,7 +1877,7 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
1876 | DQUOT_INIT(dir); | 1877 | DQUOT_INIT(dir); |
1877 | error = dir->i_op->mkdir(dir, dentry, mode); | 1878 | error = dir->i_op->mkdir(dir, dentry, mode); |
1878 | if (!error) | 1879 | if (!error) |
1879 | fsnotify_mkdir(dir, dentry->d_name.name); | 1880 | fsnotify_mkdir(dir, dentry); |
1880 | return error; | 1881 | return error; |
1881 | } | 1882 | } |
1882 | 1883 | ||
@@ -2139,7 +2140,7 @@ int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname, i | |||
2139 | DQUOT_INIT(dir); | 2140 | DQUOT_INIT(dir); |
2140 | error = dir->i_op->symlink(dir, dentry, oldname); | 2141 | error = dir->i_op->symlink(dir, dentry, oldname); |
2141 | if (!error) | 2142 | if (!error) |
2142 | fsnotify_create(dir, dentry->d_name.name); | 2143 | fsnotify_create(dir, dentry); |
2143 | return error; | 2144 | return error; |
2144 | } | 2145 | } |
2145 | 2146 | ||
@@ -2216,7 +2217,7 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de | |||
2216 | error = dir->i_op->link(old_dentry, dir, new_dentry); | 2217 | error = dir->i_op->link(old_dentry, dir, new_dentry); |
2217 | mutex_unlock(&old_dentry->d_inode->i_mutex); | 2218 | mutex_unlock(&old_dentry->d_inode->i_mutex); |
2218 | if (!error) | 2219 | if (!error) |
2219 | fsnotify_create(dir, new_dentry->d_name.name); | 2220 | fsnotify_create(dir, new_dentry); |
2220 | return error; | 2221 | return error; |
2221 | } | 2222 | } |
2222 | 2223 | ||