• L
    Btrfs: fix defragmentation regression · cbcc8326
    Li Zefan 提交于
    There's an off-by-one bug:
    
      # create a file with lots of 4K file extents
      # btrfs fi defrag /mnt/file
      # sync
      # filefrag -v /mnt/file
      Filesystem type is: 9123683e
      File size of /mnt/file is 1228800 (300 blocks, blocksize 4096)
       ext logical physical expected length flags
         0       0     3372              64
         1      64     3136     3435      1
         2      65     3436     3136     64
         3     129     3201     3499      1
         4     130     3500     3201     64
         5     194     3266     3563      1
         6     195     3564     3266     64
         7     259     3331     3627      1
         8     260     3628     3331     40 eof
    
    After this patch:
    
      ...
      # filefrag -v /mnt/file
      Filesystem type is: 9123683e
      File size of /mnt/file is 1228800 (300 blocks, blocksize 4096)
       ext logical physical expected length flags
         0       0     3372             300 eof
      /mnt/file: 1 extent found
    Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
    cbcc8326
ioctl.c 70.7 KB