HI folks, This is a patchset built on top of Allison's Logged Attributes and my CIL Scalibility patch sets. It is inspired by the performance regressions that were seen from logging 64k xattrs and trying to work out how to minimise the impact of logging xattrs. Most of that is explained in the "[RFC] xfs: intent item whiteouts" patch, so I won't repeat it here. The whiteouts massively reduce the journal write overhead of logging xattrs - with this patchset I've reduced 2.5GB/s of log traffic (16 way file create w/64k xattr workload) down to approximately 220MB of log traffic, and performance has increased from 9k creates/s to 36k creates/s. The workload still writes to disk at 2.5GB/s, but that's what writing 35k x 64k xattrs to disk does. This is still short of the non-logged attribute mechanism, which runs at 45-50k creates a second and 3.5-4GB/s to disk, but it brings logged attrs to within roughly 5-15% of non-logged attrs across the full range of attribute sizes. The biggest limitation to logged attr throughput at this point in time is the memory allocation overhead of the shadow buffers for logging the xattr name. I have some ideas on how to avoid that, but nothing concrete yet, so in the mean time there's a patch to make "kvmalloc()" behave how we need it to behave and the whiteout implementation frees shadow buffers attached to the intents when the whiteout is applied so that we don't hold lots of memory allocated unnecessarily. This patchset is separate to the attr code, though, because intent whiteouts are not specific to the attr code. They are a generic mechanism that can be applied to all the intent/intent done item pairs we already have. This patch set modifies all those intents to use whiteouts, and so there is benefits from the patch set for all operations that use these intents. I haven't done anything other than smoke test these patches with xattr performance tests, so don't use them on anything you care about. This posting is for early feedback so I can try to land them with the logged attribute code to minimise the impact of the perf regressions. What do people think of the approach I've taken for this feature? Cheers, Dave.