public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/18] xfs: directory/attribute geometry abstraction
@ 2014-05-08  8:19 Dave Chinner
  2014-05-08  8:19 ` [PATCH 01/18] xfs: remove redundant checks from xfs_da_read_buf Dave Chinner
                   ` (17 more replies)
  0 siblings, 18 replies; 21+ messages in thread
From: Dave Chinner @ 2014-05-08  8:19 UTC (permalink / raw)
  To: xfs

Hi folks,

As I mentioned in the in-kernel libxfs reowrk thread, there's a
problem with the libxfs code being dependent on the struct
xfs_mount, which is defined externally to libxfs.

The series stemmed from that as a way of working out the issues with
untangling the circular dependency mess. Essentially all the da code
is dependent on the struct xfs-mount for directory and attribute
tree configuration - block sizes, merge thresholds, etc. These all
need to be defined and managed by the libxfs code itself, and the
external code should just manage it.

So, this patchset removes one of the dependencies from the da code
by adding a geometry structure to the xfs_da_args that contains all
the necessary information from the struct xfs_mount. In doing this
abstraction, I realised that this is exactly the abstraction needed
to do per-inode directory block size configuration rather than have
it be fixed for the entire filesystem by the superblock. So the
patch set also sets the ground work for that.

It also opens some other interesting avenues - the directory
geometry is really just a specialised data fork allocation policy
structure. I'll leave the reader to follow that to it's logical
conclusion....

Now, this patchset is currently only compile tested - if you try to
run it, it will eat all your Precious' and then ask "Please, Sir,
can I have some more?". There are things that I've noticed in later
patches that need fixing in earlier patches and I've just left them
with an XXX in place, so there's no need to tell me that work needs
to be done to fix this ;)

I am posting it, however, to demonstrate the process which I think
we need to take to properly abstract the core XFS code from both the
kernel glue layer and the userspace layer. I'm looking for early
feedback for this in the context of the libxfs-in-kernel branch I
posted a couple of days ago. I don't want to get 90% into a
restructure and then have people say "No, this is wrong!".

Eventually, I'd like to have the libxfs code be completely
indepenent of the struct xfs_mount, and the external struct
xfs_mount just hold a bunch of structures it passes to the libxfs
code. It'll take quite a bit of work to get there, but if I'm going
to be using libxfs as the core infrastructure of a smart block
device, I don't want to carry an xfs_mount around at all....

So, flames, comments, deep thoughts, ponderings, straight jackets,
and so on are all welcome! just don't try to run the code ;)

Cheers,

Dave.

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

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

end of thread, other threads:[~2014-05-20 22:34 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-08  8:19 [RFC PATCH 00/18] xfs: directory/attribute geometry abstraction Dave Chinner
2014-05-08  8:19 ` [PATCH 01/18] xfs: remove redundant checks from xfs_da_read_buf Dave Chinner
2014-05-08  8:19 ` [PATCH 02/18] xfs: introduce directory geometry structure Dave Chinner
2014-05-08  8:19 ` [PATCH 03/18] xfs: move directory block translatiosn to xfs_da_btree.h Dave Chinner
2014-05-08  8:19 ` [PATCH 04/18] xfs: kill XFS_DIR2...FIRSTDB macros Dave Chinner
2014-05-08  8:19 ` [PATCH 05/18] xfs: convert dir byte/off conversion to xfs_da_geometry Dave Chinner
2014-05-08  8:19 ` [PATCH 06/18] xfs: convert directory dablk " Dave Chinner
2014-05-08  8:19 ` [PATCH 07/18] xfs: convert directory db " Dave Chinner
2014-05-08  8:19 ` [PATCH 08/18] xfs: convert directory segment limits " Dave Chinner
2014-05-08  8:19 ` [PATCH 09/18] xfs: convert m_dirblkfsbs " Dave Chinner
2014-05-08  8:19 ` [PATCH 10/18] xfs: convert m_dirblksize " Dave Chinner
2014-05-08  8:19 ` [PATCH 11/18] xfs: convert dir/attr btree threshold " Dave Chinner
2014-05-08  8:19 ` [PATCH 12/18] xfs: reduce direct usage of mp->m_dir_geo Dave Chinner
2014-05-08  8:19 ` [PATCH 13/18] xfs: remove mp->m_dir_geo from directory logging Dave Chinner
2014-05-08  8:19 ` [PATCH 14/18] xfs: move node entry counts to xfs_da_geometry Dave Chinner
2014-05-08  8:19 ` [PATCH 15/18] xfs: use xfs_da_geometry for block size in attr code Dave Chinner
2014-05-08  8:19 ` [PATCH 16/18] xfs: pass xfs_da_args to xfs_attr_leaf_newentsize Dave Chinner
2014-05-08  8:19 ` [PATCH 17/18] xfs: repalce attr LBSIZE with xfs_da_geometry Dave Chinner
2014-05-08  8:19 ` [PATCH 18/18] xfs: add xfs_da_geometry to inode forks Dave Chinner
2014-05-09  7:31   ` Christoph Hellwig
2014-05-20 22:33     ` Dave Chinner

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