On 2024/5/1 17:32, Dave Chinner wrote: > On Wed, Apr 10, 2024 at 11:03:08PM +0800, Zhang Yi wrote: >> From: Zhang Yi <yi.zhang@xxxxxxxxxx> >> >> Online defrag doesn't support iomap path yet, we have to fall back to >> buffer_head path for the inode which has been using iomap. Changing >> active inode is dangerous, before we start, we must hold the inode lock >> and the mapping->invalidate_lock, and writeback all dirty folios and >> drop the inode's pagecache. > > Even then, I don't think this is obviously safe. We went through > this with DAX and we couldn't make it work safely. > > Just return EOPNOTSUPP to the online defrag ioctl if iomap is in use > - that avoids all the excitement involved in doing dangerous things > like swapping aops structures on actively referenced inodes... > Okay, this is just a temporary solution to support defrag. I've been looking at how to support defrag for iomap recently, I hope it could be supported in the near future, so let's drop this dangerous operation. Thanks, Yi.