Re: [PATCH 1/3] ext2fs: Add JBD2 on-disk layout headers

Milos Nikic <[email protected]>
Newsgroups gmane.os.hurd.bugs
Message-ID <CAOeJtk9nvrAri20_JFdwFze_X5BV0KCf54h6SdjHVfuFcbfkCQ@mail.gmail.com>
Hey Samuel,

Oh wow...thank you so much, you have no idea how happy i am that this got
in.
Thank you so so much.

I will send the separate small patches to address the comments, but this
one is just to thank you and to try to answer the question.

sync should absolutely trigger a sync, in fact you can see in pager.c in
diskfs_sync_everything we call
  journal_commit_running_transaction ();

Which calls sync more than once (perhaps too many times)...

I just tested it without any delay like this
echo c > c && sync

and added a log warn statement in flush_to_disk and  inside journal.c and
inside diskfs_sync_everything

void
diskfs_sync_everything (int wait)
{
  error_t sync_one (void *v_p)
    {
      struct pager *p = v_p;
      pager_sync (p, wait);
      return 0;
    }

  write_all_disknodes ();
  JRNL_LOG_WARN("About to commit");
  /* We only commit if there is a journal and we have a running transaction
*/
  journal_commit_running_transaction ();
  ports_bucket_iterate (file_pager_bucket, sync_one);

  /* Do things on the the disk pager.  */
  sync_global (wait);
  if (wait && !ext2_journal)
    {
      error_t err = store_sync (store);
      if (err && err != EOPNOTSUPP && err != D_INVALID_OPERATION)
        ext2_warning ("device flush failed: %s", strerror (err));
    }
}


```
static void
flush_to_disk (void)
{
  error_t err = store_sync (store);
  JRNL_LOG_WARN("Calling store_sync");
  /* Ignore EOPNOTSUPP (drivers), but warn on real I/O errors */
  if (err && err != EOPNOTSUPP)
    JRNL_LOG_WARN ("Device flush failed: %s", strerror (err));
}
```

my log is:
```

ext2fs: part:5:device:wd0: warning: [JOURNAL] About to commit

ext2fs: part:5:device:wd0: warning: [JOURNAL] Calling store_sync

ext2fs: part:5:device:wd0: warning: [JOURNAL] Calling store_sync

ext2fs: part:5:device:wd0: warning: [JOURNAL] Calling store_sync

ext2fs: part:5:device:wd0: warning: [JOURNAL] Calling store_sync

ext2fs: part:5:device:wd0: warning: [JOURNAL] Calling store_sync

ext2fs: part:5:device:wd0: warning: [JOURNAL] Calling store_sync
```

let me know if i misunderstood something, its been a bit of time and i have
started to forget some of the details.

What can happen if there is a delay when echo is executed and sync is
called the background thread could have committed in the meantime.


Thanks again,

Milos



On Wed, May 27, 2026 at 6:00 PM Samuel Thibault <[email protected]>
wrote:

> Do we really have enough sync calls?
>
> I am implementing the flush call for ide/ahci drivers in gnumach, and I
> am not seeing that many sync requests. Notably,
>
> $ echo a > a
> $ sync
>
> does not trigger a sync. Shouldn't it?
>
> Samuel
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.