FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 06-24-2010, 11:15 PM
Bob Peterson
 
Default GFS2: O_TRUNC not working on stuffed files across cluster

Hi,

This patch replaces a statement that got dropped out by accident.
Without the patch, truncates on stuffed (very small) files cause
those files to have an unpredictable size.

Regards,

Bob Peterson
Red Hat File Systems


Signed-off-by: Bob Peterson <rpeterso@redhat.com>
--
fs/gfs2/bmap.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 0db0cd9..a7b1c7c 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -1042,6 +1042,7 @@ static int trunc_start(struct gfs2_inode *ip, u64 size)

if (gfs2_is_stuffed(ip)) {
u64 dsize = size + sizeof(struct gfs2_inode);
+ ip->i_disksize = size;
ip->i_inode.i_mtime = ip->i_inode.i_ctime = CURRENT_TIME;
gfs2_trans_add_bh(ip->i_gl, dibh, 1);
gfs2_dinode_out(ip, dibh->b_data);
 
Old 06-25-2010, 09:54 AM
Steven Whitehouse
 
Default GFS2: O_TRUNC not working on stuffed files across cluster

Hi,

Now in the -nmw tree. Thanks,

Steve.

On Thu, 2010-06-24 at 19:15 -0400, Bob Peterson wrote:
> Hi,
>
> This patch replaces a statement that got dropped out by accident.
> Without the patch, truncates on stuffed (very small) files cause
> those files to have an unpredictable size.
>
> Regards,
>
> Bob Peterson
> Red Hat File Systems
>
>
> Signed-off-by: Bob Peterson <rpeterso@redhat.com>
> --
> fs/gfs2/bmap.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
> index 0db0cd9..a7b1c7c 100644
> --- a/fs/gfs2/bmap.c
> +++ b/fs/gfs2/bmap.c
> @@ -1042,6 +1042,7 @@ static int trunc_start(struct gfs2_inode *ip, u64 size)
>
> if (gfs2_is_stuffed(ip)) {
> u64 dsize = size + sizeof(struct gfs2_inode);
> + ip->i_disksize = size;
> ip->i_inode.i_mtime = ip->i_inode.i_ctime = CURRENT_TIME;
> gfs2_trans_add_bh(ip->i_gl, dibh, 1);
> gfs2_dinode_out(ip, dibh->b_data);
 

Thread Tools




All times are GMT. The time now is 04:46 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org