Date: Tue, 13 May 2008 10:56:11 +0300 From: Andriy Gapon <avg@icyb.net.ua> To: freebsd-geom@freebsd.org, freebsd-fs@freebsd.org Subject: handling of EGAIN from softdep_check_suspend (gjournal) Message-ID: <4829499B.6080007@icyb.net.ua>
next in thread | raw e-mail | index | archive | help
As being reported from time to time, sometimes there is a following error message produced by gjournal activity: kernel: fsync: giving up on dirty kernel: 0xc32b8bb0: tag devfs, type VCHR kernel: usecount 1, writecount 0, refcount 50 mountedhere 0xc323d200 kernel: flags () kernel: v_object 0xc10499b0 ref 0 pages 451 kernel: lock type devfs: EXCL (count 1) by thread 0xc3208000 (pid 39) kernel: dev ad4s1e.journal kernel: GEOM_JOURNAL: Cannot suspend file system /export (error=35). errno 35 is EAGAIN/EWOULDBLOCK and it is returned from vfs_write_suspend on FFS. The only place where this return code is present in the whole FFS/UFS code is softdep_check_suspend. Comment in the function says the following (for non-softupdates case): /* * Reasons for needing more work before suspend: * - Dirty buffers on devvp. * - Secondary writes occurred after start of vnode sync loop */ I wonder what is recommended handling of this return code? Maybe we should try 'AGAIN' instead of just giving up immediately? -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4829499B.6080007>