I'm thinking that the bug is in the OCFS2 filesystem driver. Since it can span multiple disks, both local and remote, it can not give a sensible answer to the FIBMAP ioctl when fstrim asks what blocks a file is located in. Please test this by creating a file and checking where FIBMAP says it is located and see if the data is really there:
echo hello > foo hdparm --fibmap foo dd count=1 bs=size if=/dev/dm-2 skip=offset | hd Where size is whatever the block size of the filesystem is ( 4k? ), and offset is the block number given by the hdparm call. Am I correct in assuming this filesystem spans at least two devices? dm-2 and dm-3? ** Changed in: util-linux (Ubuntu) Status: Confirmed => Incomplete -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to util-linux in Ubuntu. https://bugs.launchpad.net/bugs/1681410 Title: fstrim corrupts ocfs2 filesystems when clustered Status in util-linux package in Ubuntu: Incomplete Bug description: Recently upgraded from trusty to xenial and found that our ocfs2 filesystems, which are mounted across a number of nodes simultaneously, would become corrupt on the weekend: [Sun Apr 9 06:46:35 2017] OCFS2: ERROR (device dm-2): ocfs2_validate_gd_self: Group descriptor #516096 has bad signature [Sun Apr 9 06:46:35 2017] On-disk corruption discovered. Please run fsck.ocfs2 once the filesystem is unmounted. [Sun Apr 9 06:46:35 2017] OCFS2: File system is now read-only. [Sun Apr 9 06:46:35 2017] (fstrim,1080,8):ocfs2_trim_fs:7399 ERROR: status = -30 [Sun Apr 9 06:46:35 2017] OCFS2: ERROR (device dm-3): ocfs2_validate_gd_self: Group descriptor #516096 has bad signature [Sun Apr 9 06:46:36 2017] On-disk corruption discovered. Please run fsck.ocfs2 once the filesystem is unmounted. [Sun Apr 9 06:46:36 2017] OCFS2: File system is now read-only. [Sun Apr 9 06:46:36 2017] (fstrim,1080,10):ocfs2_trim_fs:7399 ERROR: status = -30 We found the cron.weekly job which is pretty close to the timing: 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) # cat /etc/cron.weekly/fstrim #!/bin/sh # trim all mounted file systems which support it /sbin/fstrim --all || true We have disabled this job across our servers running clustered ocfs2 filesystems. I think either the utility or the cronjob should ignore ocfs2 (gfs too?) filesystems. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1681410/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp