2012-10-20 12:24:12

by Marco Stornelli

[permalink] [raw]
Subject: [PATCH 04/21] procfs: drop vmtruncate

Removed vmtruncate

Signed-off-by: Marco Stornelli <[email protected]>
---
fs/proc/base.c | 3 ++-
fs/proc/generic.c | 3 ++-
fs/proc/proc_sysctl.c | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/proc/base.c b/fs/proc/base.c
index 144a967..f976f31 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -544,9 +544,10 @@ int proc_setattr(struct dentry *dentry, struct iattr *attr)

if ((attr->ia_valid & ATTR_SIZE) &&
attr->ia_size != i_size_read(inode)) {
- error = vmtruncate(inode, attr->ia_size);
+ error = inode_newsize_ok(inode, attr->ia_size);
if (error)
return error;
+ truncate_setsize(inode, attr->ia_size);
}

setattr_copy(inode, attr);
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index 0d80cef..6e7a8a7 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -263,9 +263,10 @@ static int proc_notify_change(struct dentry *dentry, struct iattr *iattr)

if ((iattr->ia_valid & ATTR_SIZE) &&
iattr->ia_size != i_size_read(inode)) {
- error = vmtruncate(inode, iattr->ia_size);
+ error = inode_newsize_ok(inode, iattr->ia_size);
if (error)
return error;
+ truncate_setsize(inode, iattr->ia_size);
}

setattr_copy(inode, iattr);
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
index a781bdf..f8d7989 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -737,9 +737,10 @@ static int proc_sys_setattr(struct dentry *dentry, struct iattr *attr)

if ((attr->ia_valid & ATTR_SIZE) &&
attr->ia_size != i_size_read(inode)) {
- error = vmtruncate(inode, attr->ia_size);
+ error = inode_newsize_ok(inode, attr->ia_size);
if (error)
return error;
+ truncate_setsize(inode, attr->ia_size);
}

setattr_copy(inode, attr);
--
1.7.3.4


2012-10-24 15:12:11

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 04/21] procfs: drop vmtruncate

On Sat, Oct 20, 2012 at 02:17:33PM +0200, Marco Stornelli wrote:
> Removed vmtruncate
>
> Signed-off-by: Marco Stornelli <[email protected]>

As Al pointed out we probably shouldn't even allow truncate on procfs.
Can look into refusing it instead, please?

2012-10-24 16:09:20

by Marco Stornelli

[permalink] [raw]
Subject: Re: [PATCH 04/21] procfs: drop vmtruncate

Il 24/10/2012 17:12, Christoph Hellwig ha scritto:
> On Sat, Oct 20, 2012 at 02:17:33PM +0200, Marco Stornelli wrote:
>> Removed vmtruncate
>>
>> Signed-off-by: Marco Stornelli <[email protected]>
>
> As Al pointed out we probably shouldn't even allow truncate on procfs.
> Can look into refusing it instead, please?
>
>

Mmmm...for example the command "truncate --size=100 config.gz" is a nop,
so it seems to me it makes no sense to support the size change, but I
don't know if there are other use cases. However, should we return EPERM
in case of size change checking it before inode_change_ok()?

Marco