Nevermind, it still doesn't work on the right disk. While the disk is not mounted initially, by the time unuse_data_iterate() is called, it has been mounted for some reason. I'm thinking there is a race condition where something mounts the fs temporarily and unmounts it, and during the time it is mounted is when unuse_data_iterate() is called, which sees it is mounted, and tries to unmount it, but by the time the unmount request goes through, it has already been unmounted.
Nevermind, it still doesn't work on the right disk. While the disk is not mounted initially, by the time unuse_data_ iterate( ) is called, it has been mounted for some reason. I'm thinking there is a race condition where something mounts the fs temporarily and unmounts it, and during the time it is mounted is when unuse_data_ iterate( ) is called, which sees it is mounted, and tries to unmount it, but by the time the unmount request goes through, it has already been unmounted.