What about just setting O_DSYNC in f_flags at open time if a superblock has SB_SYNCHRONOUS set? That means the flag won't be picked up for open files when SB_SYNCHRONOUS is set at remount time, but I'm not even sure we need to support it for remount.