2012-11-03 09:38:58

by Marco Stornelli

[permalink] [raw]
Subject: [PATCH 20/21] mm: drop vmtruncate

Removed vmtruncate

Signed-off-by: Marco Stornelli <[email protected]>
---
include/linux/mm.h | 1 -
mm/truncate.c | 23 -----------------------
2 files changed, 0 insertions(+), 24 deletions(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index fa06804..95f70bb 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -977,7 +977,6 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,

extern void truncate_pagecache(struct inode *inode, loff_t old, loff_t new);
extern void truncate_setsize(struct inode *inode, loff_t newsize);
-extern int vmtruncate(struct inode *inode, loff_t offset);
void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end);
int truncate_inode_page(struct address_space *mapping, struct page *page);
int generic_error_remove_page(struct address_space *mapping, struct page *page);
diff --git a/mm/truncate.c b/mm/truncate.c
index d51ce92..c75b736 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -577,29 +577,6 @@ void truncate_setsize(struct inode *inode, loff_t newsize)
EXPORT_SYMBOL(truncate_setsize);

/**
- * vmtruncate - unmap mappings "freed" by truncate() syscall
- * @inode: inode of the file used
- * @newsize: file offset to start truncating
- *
- * This function is deprecated and truncate_setsize or truncate_pagecache
- * should be used instead, together with filesystem specific block truncation.
- */
-int vmtruncate(struct inode *inode, loff_t newsize)
-{
- int error;
-
- error = inode_newsize_ok(inode, newsize);
- if (error)
- return error;
-
- truncate_setsize(inode, newsize);
- if (inode->i_op->truncate)
- inode->i_op->truncate(inode);
- return 0;
-}
-EXPORT_SYMBOL(vmtruncate);
-
-/**
* truncate_pagecache_range - unmap and remove pagecache that is hole-punched
* @inode: inode
* @lstart: offset of beginning of hole
--
1.7.3.4


2012-11-16 06:39:42

by Jaegeuk Hanse

[permalink] [raw]
Subject: Re: [PATCH 20/21] mm: drop vmtruncate

On 11/03/2012 05:32 PM, Marco Stornelli wrote:
> Removed vmtruncate

Hi Marco,

Could you explain me why vmtruncate need remove? What's the problem and
how to substitute it?

Regards,
Jaegeuk

>
> Signed-off-by: Marco Stornelli <[email protected]>
> ---
> include/linux/mm.h | 1 -
> mm/truncate.c | 23 -----------------------
> 2 files changed, 0 insertions(+), 24 deletions(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index fa06804..95f70bb 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -977,7 +977,6 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping,
>
> extern void truncate_pagecache(struct inode *inode, loff_t old, loff_t new);
> extern void truncate_setsize(struct inode *inode, loff_t newsize);
> -extern int vmtruncate(struct inode *inode, loff_t offset);
> void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end);
> int truncate_inode_page(struct address_space *mapping, struct page *page);
> int generic_error_remove_page(struct address_space *mapping, struct page *page);
> diff --git a/mm/truncate.c b/mm/truncate.c
> index d51ce92..c75b736 100644
> --- a/mm/truncate.c
> +++ b/mm/truncate.c
> @@ -577,29 +577,6 @@ void truncate_setsize(struct inode *inode, loff_t newsize)
> EXPORT_SYMBOL(truncate_setsize);
>
> /**
> - * vmtruncate - unmap mappings "freed" by truncate() syscall
> - * @inode: inode of the file used
> - * @newsize: file offset to start truncating
> - *
> - * This function is deprecated and truncate_setsize or truncate_pagecache
> - * should be used instead, together with filesystem specific block truncation.
> - */
> -int vmtruncate(struct inode *inode, loff_t newsize)
> -{
> - int error;
> -
> - error = inode_newsize_ok(inode, newsize);
> - if (error)
> - return error;
> -
> - truncate_setsize(inode, newsize);
> - if (inode->i_op->truncate)
> - inode->i_op->truncate(inode);
> - return 0;
> -}
> -EXPORT_SYMBOL(vmtruncate);
> -
> -/**
> * truncate_pagecache_range - unmap and remove pagecache that is hole-punched
> * @inode: inode
> * @lstart: offset of beginning of hole

2012-11-16 07:51:42

by Marco Stornelli

[permalink] [raw]
Subject: Re: [PATCH 20/21] mm: drop vmtruncate

2012/11/16 Jaegeuk Hanse <[email protected]>:
> On 11/03/2012 05:32 PM, Marco Stornelli wrote:
>>
>> Removed vmtruncate
>
>
> Hi Marco,
>
> Could you explain me why vmtruncate need remove? What's the problem and how
> to substitute it?
>
> Regards,
> Jaegeuk
>

vmtruncate is a deprecated function so it'd be better to remove it.
The truncate sequence is changed for several reasons. The
documentation is clear: "This function is deprecated and
truncate_setsize or truncate_pagecache should be used instead,
together with filesystem specific block truncation." In addition, we
can remove the truncate callback from the inode struct saving 4/8
bytes.

Marco