linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Extend FIEMAP to indicate shared extents
@ 2009-10-22  1:05 Sunil Mushran
  2009-10-22  1:05 ` [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED Sunil Mushran
  2009-10-22  1:05 ` [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED Sunil Mushran
  0 siblings, 2 replies; 9+ messages in thread
From: Sunil Mushran @ 2009-10-22  1:05 UTC (permalink / raw)
  To: ocfs2-devel, linux-fsdevel, linux-kernel

This adds a FIEMAP extent flag, FIEMAP_EXTENT_SHARED, to indicate
extents that are shared by multiple files. The second patch makes
use of the same in the OCFS2 file system to show such extents in
the reflinked files.

Thanks
Sunil

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED
  2009-10-22  1:05 Extend FIEMAP to indicate shared extents Sunil Mushran
@ 2009-10-22  1:05 ` Sunil Mushran
  2009-10-23 18:00   ` [Ocfs2-devel] " Mark Fasheh
  2009-10-22  1:05 ` [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED Sunil Mushran
  1 sibling, 1 reply; 9+ messages in thread
From: Sunil Mushran @ 2009-10-22  1:05 UTC (permalink / raw)
  To: ocfs2-devel, linux-fsdevel, linux-kernel

Patch adds flag FIEMAP_EXTENT_SHARED to denote extents that are
shared with other inodes.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
---
 include/linux/fiemap.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/linux/fiemap.h b/include/linux/fiemap.h
index 934e22d..d830747 100644
--- a/include/linux/fiemap.h
+++ b/include/linux/fiemap.h
@@ -62,5 +62,7 @@ struct fiemap {
 #define FIEMAP_EXTENT_MERGED		0x00001000 /* File does not natively
 						    * support extents. Result
 						    * merged for efficiency. */
+#define FIEMAP_EXTENT_SHARED		0x00002000 /* Space shared with other
+						    * files. */
 
 #endif /* _LINUX_FIEMAP_H */
-- 
1.6.0.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED
  2009-10-22  1:05 Extend FIEMAP to indicate shared extents Sunil Mushran
  2009-10-22  1:05 ` [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED Sunil Mushran
@ 2009-10-22  1:05 ` Sunil Mushran
  1 sibling, 0 replies; 9+ messages in thread
From: Sunil Mushran @ 2009-10-22  1:05 UTC (permalink / raw)
  To: ocfs2-devel, linux-fsdevel, linux-kernel

Adds FIEMAP_EXTENT_SHARED flag to refcounted extents.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
---
 fs/ocfs2/extent_map.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c
index 843db64..cdce5f8 100644
--- a/fs/ocfs2/extent_map.c
+++ b/fs/ocfs2/extent_map.c
@@ -786,6 +786,8 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 		fe_flags = 0;
 		if (rec.e_flags & OCFS2_EXT_UNWRITTEN)
 			fe_flags |= FIEMAP_EXTENT_UNWRITTEN;
+		if (rec.e_flags & OCFS2_EXT_REFCOUNTED)
+			fe_flags |= FIEMAP_EXTENT_SHARED;
 		if (is_last)
 			fe_flags |= FIEMAP_EXTENT_LAST;
 		len_bytes = (u64)le16_to_cpu(rec.e_leaf_clusters) << osb->s_clustersize_bits;
-- 
1.6.0.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Ocfs2-devel] [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED
  2009-10-22  1:05 ` [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED Sunil Mushran
@ 2009-10-23 18:00   ` Mark Fasheh
  2009-10-24 18:30     ` Jamie Lokier
  0 siblings, 1 reply; 9+ messages in thread
From: Mark Fasheh @ 2009-10-23 18:00 UTC (permalink / raw)
  To: Sunil Mushran; +Cc: ocfs2-devel, linux-fsdevel, linux-kernel

On Wed, Oct 21, 2009 at 06:05:08PM -0700, Sunil Mushran wrote:
> Patch adds flag FIEMAP_EXTENT_SHARED to denote extents that are
> shared with other inodes.

This looks pretty sane to me. Thanks Sunil.


> Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>

Acked-by: Mark Fasheh <mfasheh@suse.com>
	--Mark

--
Mark Fasheh

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Ocfs2-devel] [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED
  2009-10-23 18:00   ` [Ocfs2-devel] " Mark Fasheh
@ 2009-10-24 18:30     ` Jamie Lokier
  2009-10-26 17:29       ` Sunil Mushran
  0 siblings, 1 reply; 9+ messages in thread
From: Jamie Lokier @ 2009-10-24 18:30 UTC (permalink / raw)
  To: Mark Fasheh; +Cc: Sunil Mushran, ocfs2-devel, linux-fsdevel, linux-kernel

Mark Fasheh wrote:
> On Wed, Oct 21, 2009 at 06:05:08PM -0700, Sunil Mushran wrote:
> > Patch adds flag FIEMAP_EXTENT_SHARED to denote extents that are
> > shared with other inodes.
> 
> This looks pretty sane to me. Thanks Sunil.

It might be better to have a flag FIEMAP_EXTENT_NOT_SHARED.

Apps which need to know the data is not shared can't safely check
!(flags & FIEMAP_EXTENT_SHARED) because of old kernels which don't set
the flag.

-- Jamie

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED
  2009-10-24 18:30     ` Jamie Lokier
@ 2009-10-26 17:29       ` Sunil Mushran
  2009-10-26 19:29         ` [Ocfs2-devel] " Brad Boyer
  0 siblings, 1 reply; 9+ messages in thread
From: Sunil Mushran @ 2009-10-26 17:29 UTC (permalink / raw)
  To: Jamie Lokier; +Cc: linux-fsdevel, Mark Fasheh, linux-kernel, ocfs2-devel

Jamie Lokier wrote:
> It might be better to have a flag FIEMAP_EXTENT_NOT_SHARED.
>
> Apps which need to know the data is not shared can't safely check
> !(flags & FIEMAP_EXTENT_SHARED) because of old kernels which don't set
> the flag.

I'm probably not understanding your point. Won't the older kernels not set
FIEMAP_EXTENT_NOT_SHARED too.

If this is important, we could always add this flag in the stable kernel
trees. Both sharing of extents and fiemap are relatively new to the kernel.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Ocfs2-devel] [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED
  2009-10-26 17:29       ` Sunil Mushran
@ 2009-10-26 19:29         ` Brad Boyer
  0 siblings, 0 replies; 9+ messages in thread
From: Brad Boyer @ 2009-10-26 19:29 UTC (permalink / raw)
  To: Sunil Mushran
  Cc: Jamie Lokier, Mark Fasheh, ocfs2-devel, linux-fsdevel,
	linux-kernel

On Mon, Oct 26, 2009 at 10:29:36AM -0700, Sunil Mushran wrote:
> Jamie Lokier wrote:
> >It might be better to have a flag FIEMAP_EXTENT_NOT_SHARED.
> >
> >Apps which need to know the data is not shared can't safely check
> >!(flags & FIEMAP_EXTENT_SHARED) because of old kernels which don't set
> >the flag.
> 
> I'm probably not understanding your point. Won't the older kernels not set
> FIEMAP_EXTENT_NOT_SHARED too.
> 
> If this is important, we could always add this flag in the stable kernel
> trees. Both sharing of extents and fiemap are relatively new to the kernel.

I think the concern is that we are going to be getting "wrong" data when
using an old kernel, and the question is which type of error is safer. If
the flag is FIEMAP_EXTENT_SHARED, then programs running against an old
kernel may think that shared extents are not shared. If the flag is
instead FIEMAP_EXTENT_NOT_SHARED, then the program may think an extent is
shared when it is not.

The real question is which information is more important, to know that the
extent is shared or if the extent definitely is not shared. I would think
that having FIEMAP_EXTENT_SHARED is more consistent with the rest of the
defined bits, particularly since the program couldn't actually do anything
that relies completely on this data anyway since it could change at any
moment. It's not like the results of a map are static.

	Brad Boyer
	flar@allandria.com


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED
  2009-11-06 23:24 Extend FIEMAP to indicate shared extents Sunil Mushran
@ 2009-11-06 23:24 ` Sunil Mushran
  0 siblings, 0 replies; 9+ messages in thread
From: Sunil Mushran @ 2009-11-06 23:24 UTC (permalink / raw)
  To: akpm, viro, hch; +Cc: linux-fsdevel, linux-kernel, ocfs2-devel

Adds FIEMAP_EXTENT_SHARED flag to refcounted extents.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
---
 fs/ocfs2/extent_map.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c
index 843db64..cdce5f8 100644
--- a/fs/ocfs2/extent_map.c
+++ b/fs/ocfs2/extent_map.c
@@ -786,6 +786,8 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 		fe_flags = 0;
 		if (rec.e_flags & OCFS2_EXT_UNWRITTEN)
 			fe_flags |= FIEMAP_EXTENT_UNWRITTEN;
+		if (rec.e_flags & OCFS2_EXT_REFCOUNTED)
+			fe_flags |= FIEMAP_EXTENT_SHARED;
 		if (is_last)
 			fe_flags |= FIEMAP_EXTENT_LAST;
 		len_bytes = (u64)le16_to_cpu(rec.e_leaf_clusters) << osb->s_clustersize_bits;
-- 
1.5.6.5

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED
  2009-12-03 20:46 Add FIEMAP_EXTENT_SHARED flag Sunil Mushran
@ 2009-12-03 20:46 ` Sunil Mushran
  0 siblings, 0 replies; 9+ messages in thread
From: Sunil Mushran @ 2009-12-03 20:46 UTC (permalink / raw)
  To: akpm; +Cc: linux-fsdevel, linux-kernel, ocfs2-devel

Adds FIEMAP_EXTENT_SHARED flag to refcounted extents.

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
Acked-by: Mark Fasheh <mfasheh@suse.com>
---
 fs/ocfs2/extent_map.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c
index 843db64..cdce5f8 100644
--- a/fs/ocfs2/extent_map.c
+++ b/fs/ocfs2/extent_map.c
@@ -786,6 +786,8 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 		fe_flags = 0;
 		if (rec.e_flags & OCFS2_EXT_UNWRITTEN)
 			fe_flags |= FIEMAP_EXTENT_UNWRITTEN;
+		if (rec.e_flags & OCFS2_EXT_REFCOUNTED)
+			fe_flags |= FIEMAP_EXTENT_SHARED;
 		if (is_last)
 			fe_flags |= FIEMAP_EXTENT_LAST;
 		len_bytes = (u64)le16_to_cpu(rec.e_leaf_clusters) << osb->s_clustersize_bits;
-- 
1.5.6.5

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-12-03 20:46 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-22  1:05 Extend FIEMAP to indicate shared extents Sunil Mushran
2009-10-22  1:05 ` [PATCH 1/2] fiemap: Add new extent flag FIEMAP_EXTENT_SHARED Sunil Mushran
2009-10-23 18:00   ` [Ocfs2-devel] " Mark Fasheh
2009-10-24 18:30     ` Jamie Lokier
2009-10-26 17:29       ` Sunil Mushran
2009-10-26 19:29         ` [Ocfs2-devel] " Brad Boyer
2009-10-22  1:05 ` [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED Sunil Mushran
  -- strict thread matches above, loose matches on Subject: below --
2009-11-06 23:24 Extend FIEMAP to indicate shared extents Sunil Mushran
2009-11-06 23:24 ` [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED Sunil Mushran
2009-12-03 20:46 Add FIEMAP_EXTENT_SHARED flag Sunil Mushran
2009-12-03 20:46 ` [PATCH 2/2] ocfs2: Use FIEMAP_EXTENT_SHARED Sunil Mushran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).