public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Add support to RENAME_EXCHANGE flat to XFS
@ 2014-10-15 18:17 Carlos Maiolino
  2014-10-15 18:17 ` [PATCH 1/2] xfs_vn_rename by xfs_vn_rename2 Carlos Maiolino
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Carlos Maiolino @ 2014-10-15 18:17 UTC (permalink / raw)
  To: xfs

This patchset aims to implement RENAME_EXCHANGE support (from sys_renameat2) to
XFS.

For this to be achieved, XFS need to export a rename2() method, which I included
in the first patch.

The second patch is the real implementation of the RENAME_EXCHANGE flags, which
most of the work I based on xfs_rename().

I'd like some suggestions about the way I handled journaling, probably 
XFS_TRANS_RENAME is not the best way to log the changes during the
RENAME_EXCHANGE, and we might need a new journal type for this specific reason.

BTW, this patchset passed the xfstests 23, 24 and 25 (specifically for
RENAME_EXCHANGE), and I also tested the projectID inheritance problem, where
both paths must be under the same projectID to be able to change (I'm going to
implement this test into the xfstests too).

Carlos Maiolino (2):
  xfs_vn_rename by xfs_vn_rename2
  Add support to RENAME_EXCHANGE flag

 fs/xfs/xfs_inode.c | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/xfs/xfs_inode.h |   4 ++
 fs/xfs/xfs_iops.c  |  22 +++++--
 3 files changed, 207 insertions(+), 6 deletions(-)

-- 
2.1.0

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH 0/2] Add support to RENAME_EXCHANGE flat to XFS V2
@ 2014-11-10 17:41 Carlos Maiolino
  2014-11-10 17:41 ` [PATCH 2/2] Add support to RENAME_EXCHANGE flag Carlos Maiolino
  0 siblings, 1 reply; 15+ messages in thread
From: Carlos Maiolino @ 2014-11-10 17:41 UTC (permalink / raw)
  To: xfs

This patchset aims to implement RENAME_EXCHANGE support (from sys_renameat2) to
XFS.

For this to be achieved, XFS need to export a rename2() method, which I included        
in the first patch.

The second patch is the real implementation of the RENAME_EXCHANGE flags, which
most of the work I based on xfs_rename().

This patchset passed the xfstests 23, 24 and 25 (specifically for
RENAME_EXCHANGE), and I also tested the projectID inheritance problem, where
both paths must be under the same projectID to be able to change (I'm going to
implement this test into the xfstests too).

In this version of the patch, I tried to use xfs_rename for everything in
common between a usual rename and the RENAME_EXCHANGE, using xfs_cross_rename()
just for the needed stuff to accomplish RENAME_EXCHANGE requirements (as
suggested by Brian).

Also, applied suggestions from Dave, merging all the logic involving new_parent
variable

Carlos Maiolino (2):
  Make xfs_vn_rename compliant with renameat2() syscall
  Add support to RENAME_EXCHANGE flag

 fs/xfs/xfs_inode.c | 315 +++++++++++++++++++++++++++++++++++------------------
 fs/xfs/xfs_inode.h |   8 +-
 fs/xfs/xfs_iops.c  |  15 ++-
 3 files changed, 228 insertions(+), 110 deletions(-)

-- 
2.1.0

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH 0/2] Add support to RENAME_EXCHANGE flag to XFS V9
@ 2014-12-17 18:13 Carlos Maiolino
  2014-12-17 18:13 ` [PATCH 2/2] Add support to RENAME_EXCHANGE flag Carlos Maiolino
  0 siblings, 1 reply; 15+ messages in thread
From: Carlos Maiolino @ 2014-12-17 18:13 UTC (permalink / raw)
  To: xfs

This patchset aims to implement RENAME_EXCHANGE support (from sys_renameat2) to
XFS.

For this to be achieved, XFS need to export a rename2() method, which I included
in the first patch.

The second patch is the real implementation of the RENAME_EXCHANGE flags, which
most of the work I based on xfs_rename().

This patchset passed the xfstests 23, 24 and 25 (specifically for
RENAME_EXCHANGE), and I also tested the projectID inheritance problem, where
both paths must be under the same projectID to be able to change (I'm going to
implement this test into the xfstests too).

Changelog

 Make xfs_vn_rename compliant with renameat2() syscall

	V2: Use xfs_vn_rename as-is, instead of rename it to xfs_vn_rename2

 Add support to RENAME_EXCHANGE flag

	V2: - refactor xfs_cross_rename() to not duplicate code from xfs_rename()

	V3: - fix indentation to avoid 80 column crossing, decrease the amount of
	      arguments passed to xfs_cross_rename()
	    - Rebase patches over the latest linux code

	v4: - use a label/goto statement instead of an if conditional after
	      xfs_cross_rename() return, to finish the rename operation
	    - Make xfs_cross_rename() static
	    - Fix some comments

	V5: - Keep all the code under 80 columns

	V6: - Ensure i_mode of both files are updated during exchange

	V7: - Use struct names instead of typedefs in the xfs_cross_rename()
	      definition

	V8: - Replace src/target names for better variable names
	    - Log and timestamp updates done in different places
	    - Fix missing space in comments
	    - get rid of {src,tgt}_is_directory and new_parent variables

	V9: - Use flags to track down inode changes and update its timestamps
	    - Fix some comments

 fs/xfs/xfs_inode.c | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 fs/xfs/xfs_inode.h |   2 +-
 fs/xfs/xfs_iops.c  |  21 ++++++---
 3 files changed, 149 insertions(+), 8 deletions(-)

-- 
1.9.3

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

end of thread, other threads:[~2014-12-17 18:13 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-15 18:17 [PATCH 0/2] Add support to RENAME_EXCHANGE flat to XFS Carlos Maiolino
2014-10-15 18:17 ` [PATCH 1/2] xfs_vn_rename by xfs_vn_rename2 Carlos Maiolino
2014-10-16 21:04   ` Brian Foster
2014-10-17  9:35     ` Christoph Hellwig
2014-10-21 12:56       ` Carlos Maiolino
2014-10-15 18:17 ` [PATCH 2/2] Add support to RENAME_EXCHANGE flag Carlos Maiolino
2014-10-16 21:05   ` Brian Foster
2014-10-20  0:25     ` Dave Chinner
2014-10-21 13:02       ` Carlos Maiolino
2014-11-07 19:05 ` [PATCH 0/2] Add support to RENAME_EXCHANGE flat to XFS Christoph Hellwig
2014-11-10 12:29   ` Carlos Maiolino
  -- strict thread matches above, loose matches on Subject: below --
2014-11-10 17:41 [PATCH 0/2] Add support to RENAME_EXCHANGE flat to XFS V2 Carlos Maiolino
2014-11-10 17:41 ` [PATCH 2/2] Add support to RENAME_EXCHANGE flag Carlos Maiolino
2014-11-10 18:13   ` Eric Sandeen
2014-11-10 18:56     ` Carlos Maiolino
2014-12-17 18:13 [PATCH 0/2] Add support to RENAME_EXCHANGE flag to XFS V9 Carlos Maiolino
2014-12-17 18:13 ` [PATCH 2/2] Add support to RENAME_EXCHANGE flag Carlos Maiolino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox