From: Junxiao Bi <junxiao.bi@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 1/1] ocfs2: return non-zero st_blocks for inline data
Date: Tue, 1 Dec 2015 15:08:51 +0800 [thread overview]
Message-ID: <565D4783.2090501@oracle.com> (raw)
In-Reply-To: <1448399221-6109-2-git-send-email-john.haxby@oracle.com>
On 11/25/2015 05:07 AM, John Haxby wrote:
> Some versions of tar assume that files with st_blocks == 0 do not
> contain any data and will skip reading them entirely. See also
> commit 9206c561554c ("ext4: return non-zero st_blocks for inline data").
>
> Signed-off-by: John Haxby <john.haxby@oracle.com>
> ---
> fs/ocfs2/file.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
> index 0e5b451..d631279 100644
> --- a/fs/ocfs2/file.c
> +++ b/fs/ocfs2/file.c
> @@ -1302,6 +1302,14 @@ int ocfs2_getattr(struct vfsmount *mnt,
> }
>
> generic_fillattr(inode, stat);
> + /*
> + * If there is inline data in the inode, the inode will normally not
> + * have data blocks allocated (it may have an external xattr block).
> + * Report at least one sector for such files, so tools like tar, rsync,
> + * others don't incorrectly think the file is completely sparse.
> + */
> + if (unlikely(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL))
> + stat->blocks += (stat->size + 511)>>9;
From filesystem side, looks reasonable that data block is 0 for
inlined-data file. This is like a hack to filesystem to fix tools issue.
Indeed tar-1.26-27 have been fixed to not think file with st_blocks == 0
empty. But I am not sure why ext4 merge that fix.
Thanks,
Junxiao.
>
> /* We set the blksize from the cluster size for performance */
> stat->blksize = osb->s_clustersize;
>
next prev parent reply other threads:[~2015-12-01 7:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-24 21:07 [Ocfs2-devel] [PATCH 0/1] ocfs2: return non-zero st_blocks for inline data [resend2] John Haxby
2015-11-24 21:07 ` [Ocfs2-devel] [PATCH 1/1] ocfs2: return non-zero st_blocks for inline data John Haxby
2015-11-25 2:53 ` Gang He
2015-12-01 7:08 ` Junxiao Bi [this message]
2015-12-01 22:33 ` John Haxby
2015-12-02 2:47 ` Junxiao Bi
2015-12-18 22:34 ` Mark Fasheh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=565D4783.2090501@oracle.com \
--to=junxiao.bi@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox