hi, > On Tue, Apr 19, 2011 at 11:44:16PM +0000, YAMAMOTO Takashi wrote: >> hi, >> >> > Block devices have two different properties. First they are device nodes >> > having access times etc. and reside on a file system. Second they may have >> > a file system mounted on them. With WAPBL it is important to handle these >> > properties separately. >> > >> > Relevant PRs are 41189, 41192, 41977, 42149, 42551, 44377 and 44746 at >> > least. >> > >> > The attached diff should solve these problems by: >> > >> > - Replace the ugly sync loop in ffs_full_fsync() with vflushbuf(). This >> > loop is a left-over of softdeps and not needed anymore. >> > >> > - Merge ffs_vfs_fsync() with ffs_full_fsync() so we have only on operation >> > whether the request comes from ffs or from other file system via >> > VFS_FSYNC(). >> > >> > - Take care which mount to test for WAPBL -- v_mount to update the times >> > and >> > wapbl_vptomp() to update the dirty blocks. Never update times when >> > called >> > by VFS_FSYNC(). >> > >> > >> > Comments or objections? >> >> thanks for taking a look on this. >> >> ffs_fsync should not need to know if the filesystem used on its VBLK node is >> ffs or not. it should just call VFS_FSYNC as the other filesystems >> (ie. spec_fsync) do. the FSYNC_VFS flag should go away. > > You mean like the attached diff? All we loose is the ctime update.
sure. i think you can keep the timestamp update by having ffs_spec_fsync which calls (or does the equivalent of) spec_fsync and update the timestamp. YAMAMOTO Takashi > > -- > Juergen Hannken-Illjes - [email protected] - TU Braunschweig (Germany)
