diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2008-06-24 10:50:14 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-07-26 20:53:16 -0400 |
commit | 2f1936b87783a3a56c9441b27b9ba7a747f11e8e (patch) | |
tree | 024a0f3da74ba6365f209d03685133760146149b /mm | |
parent | c82e42da8a6b2f3a85dc4d4278cb8238702f8f64 (diff) |
[patch 3/5] vfs: change remove_suid() to file_remove_suid()
All calls to remove_suid() are made with a file pointer, because
(similarly to file_update_time) it is called when the file is written.
Clean up callers by passing in a file instead of a dentry.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/filemap.c | 7 | ||||
-rw-r--r-- | mm/filemap_xip.c | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 2ed8b0389c51..5de7633e1dbe 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -1758,8 +1758,9 @@ static int __remove_suid(struct dentry *dentry, int kill) | |||
1758 | return notify_change(dentry, &newattrs); | 1758 | return notify_change(dentry, &newattrs); |
1759 | } | 1759 | } |
1760 | 1760 | ||
1761 | int remove_suid(struct dentry *dentry) | 1761 | int file_remove_suid(struct file *file) |
1762 | { | 1762 | { |
1763 | struct dentry *dentry = file->f_path.dentry; | ||
1763 | int killsuid = should_remove_suid(dentry); | 1764 | int killsuid = should_remove_suid(dentry); |
1764 | int killpriv = security_inode_need_killpriv(dentry); | 1765 | int killpriv = security_inode_need_killpriv(dentry); |
1765 | int error = 0; | 1766 | int error = 0; |
@@ -1773,7 +1774,7 @@ int remove_suid(struct dentry *dentry) | |||
1773 | 1774 | ||
1774 | return error; | 1775 | return error; |
1775 | } | 1776 | } |
1776 | EXPORT_SYMBOL(remove_suid); | 1777 | EXPORT_SYMBOL(file_remove_suid); |
1777 | 1778 | ||
1778 | static size_t __iovec_copy_from_user_inatomic(char *vaddr, | 1779 | static size_t __iovec_copy_from_user_inatomic(char *vaddr, |
1779 | const struct iovec *iov, size_t base, size_t bytes) | 1780 | const struct iovec *iov, size_t base, size_t bytes) |
@@ -2529,7 +2530,7 @@ __generic_file_aio_write_nolock(struct kiocb *iocb, const struct iovec *iov, | |||
2529 | if (count == 0) | 2530 | if (count == 0) |
2530 | goto out; | 2531 | goto out; |
2531 | 2532 | ||
2532 | err = remove_suid(file->f_path.dentry); | 2533 | err = file_remove_suid(file); |
2533 | if (err) | 2534 | if (err) |
2534 | goto out; | 2535 | goto out; |
2535 | 2536 | ||
diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c index 3e744abcce9d..98a3f31ccd6a 100644 --- a/mm/filemap_xip.c +++ b/mm/filemap_xip.c | |||
@@ -380,7 +380,7 @@ xip_file_write(struct file *filp, const char __user *buf, size_t len, | |||
380 | if (count == 0) | 380 | if (count == 0) |
381 | goto out_backing; | 381 | goto out_backing; |
382 | 382 | ||
383 | ret = remove_suid(filp->f_path.dentry); | 383 | ret = file_remove_suid(filp); |
384 | if (ret) | 384 | if (ret) |
385 | goto out_backing; | 385 | goto out_backing; |
386 | 386 | ||