// Mount opens a write-ahead log file system func Mount(disk fs.FS) (*Disk, error) { dir, err := disk.Open("/") if err != nil { return nil, err } defer dir.Close() sfi, err := dir.Readdir(0) if err != nil { return nil, err } var m string for _, fi := range sfi { n := fi.Name() if !strings.HasPrefix(n, "master") { continue } if n > m { m = n } } d := &Disk{disk: disk} var mf File if m == "" { m = d.makeName() mf, err = Create(disk, m) } else { if d.seqno, err = parseMasterName(m); err != nil { return nil, errors.New("foreign files on disk: " + m) } mf, err = Open(disk, m) } if err != nil { return nil, err } d.master = mf return d, nil }