)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"bf93c4d315ba0a74d8c12d52fd544e26ae4b19db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ea2f0ac0_389b8c73","updated":"2022-08-18 14:23:21.000000000","message":"This is 99% done, but can at this point definitely be reviewed. Known issues: \n1. fat32.Writer will be deleted.\n2. FAT cluster sizes need to be determined according to requirements and not hardcoded.\n\nThe rest can already be reviewed.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"}],"metropolis/pkg/fat32/fat32.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":18,"context_line":"\tBlockSize uint16"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"\t// Number of blocks the filesystem should span. If zero, it will be exactly"},{"line_number":21,"context_line":"\t// as big as it needs to be."},{"line_number":22,"context_line":"\tBlockCount uint32"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\t// Human-readable filesystem label. Maximum 10 bytes, should be uppercase"}],"source_content_type":"text/x-go","patch_set":3,"id":"632a96c6_f0ec83f4","line":21,"range":{"start_line":21,"start_character":7,"end_line":21,"end_character":10},"updated":"2022-08-22 14:50:46.000000000","message":"style nit: large","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\tBlockSize uint16"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"\t// Number of blocks the filesystem should span. If zero, it will be exactly"},{"line_number":21,"context_line":"\t// as big as it needs to be."},{"line_number":22,"context_line":"\tBlockCount uint32"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"\t// Human-readable filesystem label. Maximum 10 bytes, should be uppercase"}],"source_content_type":"text/x-go","patch_set":3,"id":"f39a013e_dad3e1ab","line":21,"range":{"start_line":21,"start_character":7,"end_line":21,"end_character":10},"in_reply_to":"632a96c6_f0ec83f4","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":24,"context_line":"\t// Human-readable filesystem label. Maximum 10 bytes, should be uppercase"},{"line_number":25,"context_line":"\t// alphanumeric."},{"line_number":26,"context_line":"\tLabel string"},{"line_number":27,"context_line":"\t// Filesystem identifier"},{"line_number":28,"context_line":"\tID uint32"},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"47d8e5e3_da4cef4f","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":25},"updated":"2022-08-22 14:50:46.000000000","message":"As a library user, where am I supposed to get this from (if I\u0027m not a FAT expert/connoisseur)?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"\t// Human-readable filesystem label. Maximum 10 bytes, should be uppercase"},{"line_number":25,"context_line":"\t// alphanumeric."},{"line_number":26,"context_line":"\tLabel string"},{"line_number":27,"context_line":"\t// Filesystem identifier"},{"line_number":28,"context_line":"\tID uint32"},{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"b2c89c7c_5e40c98f","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":25},"in_reply_to":"47d8e5e3_da4cef4f","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":34,"context_line":"\tSize() int64"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"type Attribute uint8"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"const ("},{"line_number":40,"context_line":"\tAttrReadOnly  Attribute \u003d 0x01"}],"source_content_type":"text/x-go","patch_set":3,"id":"cfa3c10e_0557dcbd","line":37,"range":{"start_line":37,"start_character":5,"end_line":37,"end_character":14},"updated":"2022-08-22 14:50:46.000000000","message":"Is it worth/possible to pull in definition from docs/specs here to explain what this is (ie. that it\u0027s an Inode attribute, and what the weirder consts mean, eg. AttrSystem/Archive)?\n\n... after reviewing the rest of the code, I stand by my general observation that this would really benefit from referring to some authoritative source on the format :).","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\tSize() int64"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"type Attribute uint8"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"const ("},{"line_number":40,"context_line":"\tAttrReadOnly  Attribute \u003d 0x01"}],"source_content_type":"text/x-go","patch_set":3,"id":"bd109c2e_ba995b1b","line":37,"range":{"start_line":37,"start_character":5,"end_line":37,"end_character":14},"in_reply_to":"cfa3c10e_0557dcbd","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":44,"context_line":"\tAttrArchive   Attribute \u003d 0x20"},{"line_number":45,"context_line":")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"type Inode struct {"},{"line_number":48,"context_line":"\t// Name of the file or directory (not including its path)"},{"line_number":49,"context_line":"\tName string"},{"line_number":50,"context_line":"\t// Time the file or directory was last modified"}],"source_content_type":"text/x-go","patch_set":3,"id":"1e36eff0_188dfb66","line":47,"range":{"start_line":47,"start_character":5,"end_line":47,"end_character":10},"updated":"2022-08-22 14:50:46.000000000","message":"I guess it\u0027s worth documenting that we\u0027re the ones calling this an Inode, as that\u0027s not really a FAT concept.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"\tAttrArchive   Attribute \u003d 0x20"},{"line_number":45,"context_line":")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"type Inode struct {"},{"line_number":48,"context_line":"\t// Name of the file or directory (not including its path)"},{"line_number":49,"context_line":"\tName string"},{"line_number":50,"context_line":"\t// Time the file or directory was last modified"}],"source_content_type":"text/x-go","patch_set":3,"id":"f25a849a_c21c4e72","line":47,"range":{"start_line":47,"start_character":5,"end_line":47,"end_character":10},"in_reply_to":"1e36eff0_188dfb66","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":85,"context_line":"\treturn sum"},{"line_number":86,"context_line":"}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"func (i Inode) writeMeta(w io.Writer) error {"},{"line_number":89,"context_line":"\tfileNameUTF16 :\u003d utf16.Encode([]rune(i.Name))"},{"line_number":90,"context_line":"\t// VFAT file names are null-terminated"},{"line_number":91,"context_line":"\tfileNameUTF16 \u003d append(fileNameUTF16, 0x00)"}],"source_content_type":"text/x-go","patch_set":3,"id":"39627788_24106e3f","line":88,"range":{"start_line":88,"start_character":15,"end_line":88,"end_character":24},"updated":"2022-08-22 14:50:46.000000000","message":"I\u0027d add a comment that the difference between writeMeta and writeData (they\u0027re both really \u0027data\u0027 per FAT) is that writeMeta writes the information about this inode to the parent inode, while writeData writes this inode and possibly the data of its children. Or something. It was a bit confusing at first.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"\treturn sum"},{"line_number":86,"context_line":"}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"func (i Inode) writeMeta(w io.Writer) error {"},{"line_number":89,"context_line":"\tfileNameUTF16 :\u003d utf16.Encode([]rune(i.Name))"},{"line_number":90,"context_line":"\t// VFAT file names are null-terminated"},{"line_number":91,"context_line":"\tfileNameUTF16 \u003d append(fileNameUTF16, 0x00)"}],"source_content_type":"text/x-go","patch_set":3,"id":"b59ef568_d58a3b80","line":88,"range":{"start_line":88,"start_character":15,"end_line":88,"end_character":24},"in_reply_to":"39627788_24106e3f","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":false,"context_lines":[{"line_number":113,"context_line":"\t\t\tentry.SequenceNumber |\u003d lastSequenceNumberFlag"},{"line_number":114,"context_line":"\t\t}"},{"line_number":115,"context_line":"\t\tentry.Attributes \u003d 0x0F"},{"line_number":116,"context_line":"\t\tcopy(entry.NamePart1[:], fileNameUTF16[cpIdx:])"},{"line_number":117,"context_line":"\t\tcpIdx +\u003d len(entry.NamePart1)"},{"line_number":118,"context_line":"\t\tcopy(entry.NamePart2[:], fileNameUTF16[cpIdx:])"},{"line_number":119,"context_line":"\t\tcpIdx +\u003d len(entry.NamePart2)"},{"line_number":120,"context_line":"\t\tcopy(entry.NamePart3[:], fileNameUTF16[cpIdx:])"},{"line_number":121,"context_line":"\t\tcpIdx +\u003d len(entry.NamePart3)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"\t\tif err :\u003d binary.Write(w, binary.LittleEndian, entry); err !\u003d nil {"},{"line_number":124,"context_line":"\t\t\treturn err"}],"source_content_type":"text/x-go","patch_set":3,"id":"cc00b75a_78cadbeb","line":121,"range":{"start_line":116,"start_character":2,"end_line":121,"end_character":31},"updated":"2022-08-22 14:50:46.000000000","message":"lol vfat","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":161,"context_line":"\t\t} else {"},{"line_number":162,"context_line":"\t\t\tdate, t :\u003d timeToMsDosTime(i.ModTime)"},{"line_number":163,"context_line":"\t\t\tif err :\u003d binary.Write(w, binary.LittleEndian, \u0026dirEntry{"},{"line_number":164,"context_line":"\t\t\t\tDOSName:           [11]byte{\u0027.\u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027},"},{"line_number":165,"context_line":"\t\t\t\tLastWrittenToTime: t,"},{"line_number":166,"context_line":"\t\t\t\tLastWrittenToDate: date,"},{"line_number":167,"context_line":"\t\t\t\tAttributes:        uint8(i.Attrs),"}],"source_content_type":"text/x-go","patch_set":3,"id":"efffc701_abe7e20a","line":164,"range":{"start_line":164,"start_character":23,"end_line":164,"end_character":87},"updated":"2022-08-22 14:50:46.000000000","message":"Use a string? (also below)","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"40b2d5ccf58bb1d6888aa72d3e86ab47cae1e467","unresolved":false,"context_lines":[{"line_number":161,"context_line":"\t\t} else {"},{"line_number":162,"context_line":"\t\t\tdate, t :\u003d timeToMsDosTime(i.ModTime)"},{"line_number":163,"context_line":"\t\t\tif err :\u003d binary.Write(w, binary.LittleEndian, \u0026dirEntry{"},{"line_number":164,"context_line":"\t\t\t\tDOSName:           [11]byte{\u0027.\u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027},"},{"line_number":165,"context_line":"\t\t\t\tLastWrittenToTime: t,"},{"line_number":166,"context_line":"\t\t\t\tLastWrittenToDate: date,"},{"line_number":167,"context_line":"\t\t\t\tAttributes:        uint8(i.Attrs),"}],"source_content_type":"text/x-go","patch_set":3,"id":"d7a60173_639efe29","line":164,"range":{"start_line":164,"start_character":23,"end_line":164,"end_character":87},"in_reply_to":"21103c37_a52bc5a6","updated":"2022-09-06 09:09:01.000000000","message":"Ack","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":true,"context_lines":[{"line_number":161,"context_line":"\t\t} else {"},{"line_number":162,"context_line":"\t\t\tdate, t :\u003d timeToMsDosTime(i.ModTime)"},{"line_number":163,"context_line":"\t\t\tif err :\u003d binary.Write(w, binary.LittleEndian, \u0026dirEntry{"},{"line_number":164,"context_line":"\t\t\t\tDOSName:           [11]byte{\u0027.\u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027, \u0027 \u0027},"},{"line_number":165,"context_line":"\t\t\t\tLastWrittenToTime: t,"},{"line_number":166,"context_line":"\t\t\t\tLastWrittenToDate: date,"},{"line_number":167,"context_line":"\t\t\t\tAttributes:        uint8(i.Attrs),"}],"source_content_type":"text/x-go","patch_set":3,"id":"21103c37_a52bc5a6","line":164,"range":{"start_line":164,"start_character":23,"end_line":164,"end_character":87},"in_reply_to":"efffc701_abe7e20a","updated":"2022-09-06 08:42:01.000000000","message":"This breaks binary.Write() for no good reason as this is not actually exposed as an API.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":206,"context_line":"\treturn nil"},{"line_number":207,"context_line":"}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"func (i Inode) dataSize() (int64, error) {"},{"line_number":210,"context_line":"\tif i.Attrs\u0026AttrDirectory !\u003d 0 {"},{"line_number":211,"context_line":"\t\tvar size int64"},{"line_number":212,"context_line":"\t\tif i.parent !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"cb5a6139_976886bc","line":209,"range":{"start_line":209,"start_character":15,"end_line":209,"end_character":23},"updated":"2022-08-22 14:50:46.000000000","message":"Can we somehow validate that this is always 1:1 to writeData? Can we use binary.Size?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"40b2d5ccf58bb1d6888aa72d3e86ab47cae1e467","unresolved":false,"context_lines":[{"line_number":206,"context_line":"\treturn nil"},{"line_number":207,"context_line":"}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"func (i Inode) dataSize() (int64, error) {"},{"line_number":210,"context_line":"\tif i.Attrs\u0026AttrDirectory !\u003d 0 {"},{"line_number":211,"context_line":"\t\tvar size int64"},{"line_number":212,"context_line":"\t\tif i.parent !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"15f10bc6_49d53b51","line":209,"range":{"start_line":209,"start_character":15,"end_line":209,"end_character":23},"in_reply_to":"34fdd907_e6265d87","updated":"2022-09-06 09:09:01.000000000","message":"Ack","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":true,"context_lines":[{"line_number":206,"context_line":"\treturn nil"},{"line_number":207,"context_line":"}"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"func (i Inode) dataSize() (int64, error) {"},{"line_number":210,"context_line":"\tif i.Attrs\u0026AttrDirectory !\u003d 0 {"},{"line_number":211,"context_line":"\t\tvar size int64"},{"line_number":212,"context_line":"\t\tif i.parent !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"34fdd907_e6265d87","line":209,"range":{"start_line":209,"start_character":15,"end_line":209,"end_character":23},"in_reply_to":"cb5a6139_976886bc","updated":"2022-09-06 08:42:01.000000000","message":"Not easily. Using binary.Size() for dirEntry would improve things only marginally, but that is on a performance-sensitive path and there is a test asserting dirEntry to be 32.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":224,"context_line":"\t\t\tsize +\u003d cs"},{"line_number":225,"context_line":"\t\t}"},{"line_number":226,"context_line":"\t\tif size \u003e 2*1024*1024 {"},{"line_number":227,"context_line":"\t\t\treturn 0, errors.New(\"directory contains \u003e 2MiB of metadata which is prohibited in FAT32\")"},{"line_number":228,"context_line":"\t\t}"},{"line_number":229,"context_line":"\t\treturn size, nil"},{"line_number":230,"context_line":"\t} else {"}],"source_content_type":"text/x-go","patch_set":3,"id":"e9a825ca_8700abaf","line":227,"range":{"start_line":227,"start_character":25,"end_line":227,"end_character":34},"updated":"2022-08-22 14:50:46.000000000","message":"Either emit the directory path here or in the parent callers (or build the path by wrapping errors through the recursion).\n\nSame for other placement errors, eg. \u0027file or directory already exists\u0027.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":224,"context_line":"\t\t\tsize +\u003d cs"},{"line_number":225,"context_line":"\t\t}"},{"line_number":226,"context_line":"\t\tif size \u003e 2*1024*1024 {"},{"line_number":227,"context_line":"\t\t\treturn 0, errors.New(\"directory contains \u003e 2MiB of metadata which is prohibited in FAT32\")"},{"line_number":228,"context_line":"\t\t}"},{"line_number":229,"context_line":"\t\treturn size, nil"},{"line_number":230,"context_line":"\t} else {"}],"source_content_type":"text/x-go","patch_set":3,"id":"b6a5f971_9d3aea9a","line":227,"range":{"start_line":227,"start_character":25,"end_line":227,"end_character":34},"in_reply_to":"e9a825ca_8700abaf","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":296,"context_line":"func (i *Inode) placeRecursively(p *planningState) error {"},{"line_number":297,"context_line":"\tselfDataSize, err :\u003d i.dataSize()"},{"line_number":298,"context_line":"\tif err !\u003d nil {"},{"line_number":299,"context_line":"\t\tpanic(err)"},{"line_number":300,"context_line":"\t}"},{"line_number":301,"context_line":"\ti.startCluster \u003d p.allocBytes(selfDataSize)"},{"line_number":302,"context_line":"\tp.orderedInodes \u003d append(p.orderedInodes, i)"}],"source_content_type":"text/x-go","patch_set":3,"id":"2d6a9c83_68e20ade","line":299,"range":{"start_line":299,"start_character":2,"end_line":299,"end_character":12},"updated":"2022-08-22 14:50:46.000000000","message":"Spurious panic.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":296,"context_line":"func (i *Inode) placeRecursively(p *planningState) error {"},{"line_number":297,"context_line":"\tselfDataSize, err :\u003d i.dataSize()"},{"line_number":298,"context_line":"\tif err !\u003d nil {"},{"line_number":299,"context_line":"\t\tpanic(err)"},{"line_number":300,"context_line":"\t}"},{"line_number":301,"context_line":"\ti.startCluster \u003d p.allocBytes(selfDataSize)"},{"line_number":302,"context_line":"\tp.orderedInodes \u003d append(p.orderedInodes, i)"}],"source_content_type":"text/x-go","patch_set":3,"id":"bd914f33_5fda0cdc","line":299,"range":{"start_line":299,"start_character":2,"end_line":299,"end_character":12},"in_reply_to":"2d6a9c83_68e20ade","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":315,"context_line":"\topts Options"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"func NewWriter(w io.Writer, opts Options) {}"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"func WriteFS(w io.Writer, rootInode Inode, opts Options) error {"},{"line_number":321,"context_line":"\tif opts.BlockSize \u003d\u003d 0 {"}],"source_content_type":"text/x-go","patch_set":3,"id":"4c262f67_0c99aa34","line":318,"range":{"start_line":318,"start_character":0,"end_line":318,"end_character":44},"updated":"2022-08-22 14:50:46.000000000","message":"I can\u0027t be sure, but I don\u0027t think this function is strictly necessary.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":315,"context_line":"\topts Options"},{"line_number":316,"context_line":"}"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"func NewWriter(w io.Writer, opts Options) {}"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"func WriteFS(w io.Writer, rootInode Inode, opts Options) error {"},{"line_number":321,"context_line":"\tif opts.BlockSize \u003d\u003d 0 {"}],"source_content_type":"text/x-go","patch_set":3,"id":"332f4712_56d1cff5","line":318,"range":{"start_line":318,"start_character":0,"end_line":318,"end_character":44},"in_reply_to":"4c262f67_0c99aa34","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":329,"context_line":"\t}"},{"line_number":330,"context_line":"\twb :\u003d newBlockWriter(w)"},{"line_number":331,"context_line":"\tbs :\u003d bootSector{"},{"line_number":332,"context_line":"\t\t// Just put in NOPs, we\u0027re not going to pretend you can actually boot"},{"line_number":333,"context_line":"\t\t// any of this."},{"line_number":334,"context_line":"\t\tJmpInstruction: [3]byte{0x90, 0x90, 0x90},"},{"line_number":335,"context_line":"\t\t// Identification"},{"line_number":336,"context_line":"\t\tOEMName: [8]byte{\u0027M\u0027, \u0027O\u0027, \u0027N\u0027, \u0027O\u0027, \u0027G\u0027, \u0027O\u0027, \u0027N\u0027},"}],"source_content_type":"text/x-go","patch_set":3,"id":"d0b76fd2_589cc3fa","line":333,"range":{"start_line":332,"start_character":2,"end_line":333,"end_character":17},"updated":"2022-08-22 14:50:46.000000000","message":"At least put in an \\xEB\\xFE\\x90 (jmp $) 😊\n\nAnd TODO(q3k): write a stub","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":329,"context_line":"\t}"},{"line_number":330,"context_line":"\twb :\u003d newBlockWriter(w)"},{"line_number":331,"context_line":"\tbs :\u003d bootSector{"},{"line_number":332,"context_line":"\t\t// Just put in NOPs, we\u0027re not going to pretend you can actually boot"},{"line_number":333,"context_line":"\t\t// any of this."},{"line_number":334,"context_line":"\t\tJmpInstruction: [3]byte{0x90, 0x90, 0x90},"},{"line_number":335,"context_line":"\t\t// Identification"},{"line_number":336,"context_line":"\t\tOEMName: [8]byte{\u0027M\u0027, \u0027O\u0027, \u0027N\u0027, \u0027O\u0027, \u0027G\u0027, \u0027O\u0027, \u0027N\u0027},"}],"source_content_type":"text/x-go","patch_set":3,"id":"9cea7fbe_a8d63c39","line":333,"range":{"start_line":332,"start_character":2,"end_line":333,"end_character":17},"in_reply_to":"d0b76fd2_589cc3fa","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":377,"context_line":"\t\tp.fat \u003d make([]uint32, 0, opts.BlockCount/uint32(bs.BlocksPerCluster))"},{"line_number":378,"context_line":"\t} else {"},{"line_number":379,"context_line":"\t\t// Preallocate minimum size FAT"},{"line_number":380,"context_line":"\t\tp.fat \u003d make([]uint32, 0, 65525+2)"},{"line_number":381,"context_line":"\t}"},{"line_number":382,"context_line":"\t// First two clusters are special"},{"line_number":383,"context_line":"\tp.fat \u003d append(p.fat, 0x0ffff00|uint32(bs.MediaCode), 0x0ffffff)"}],"source_content_type":"text/x-go","patch_set":3,"id":"f0c75613_064577cf","line":380,"range":{"start_line":380,"start_character":28,"end_line":380,"end_character":33},"updated":"2022-08-22 14:50:46.000000000","message":"Where does this magic number come from? To my untrained eye this almost looks like it should be \u002765535\u0027.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":377,"context_line":"\t\tp.fat \u003d make([]uint32, 0, opts.BlockCount/uint32(bs.BlocksPerCluster))"},{"line_number":378,"context_line":"\t} else {"},{"line_number":379,"context_line":"\t\t// Preallocate minimum size FAT"},{"line_number":380,"context_line":"\t\tp.fat \u003d make([]uint32, 0, 65525+2)"},{"line_number":381,"context_line":"\t}"},{"line_number":382,"context_line":"\t// First two clusters are special"},{"line_number":383,"context_line":"\tp.fat \u003d append(p.fat, 0x0ffff00|uint32(bs.MediaCode), 0x0ffffff)"}],"source_content_type":"text/x-go","patch_set":3,"id":"a2acc2c6_634f4cab","line":380,"range":{"start_line":380,"start_character":28,"end_line":380,"end_character":33},"in_reply_to":"f0c75613_064577cf","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"\tallocClusters :\u003d len(p.fat)"},{"line_number":390,"context_line":"\tif allocClusters \u003e\u003d fatMask\u0026math.MaxUint32 {"},{"line_number":391,"context_line":"\t\treturn fmt.Errorf(\"filesystem contains more than 2^28 FAT entries, this is unsupported\")"},{"line_number":392,"context_line":"\t}"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"\t// Fill out FAT to minimum size for FAT32"}],"source_content_type":"text/x-go","patch_set":3,"id":"614fee9e_ac7874c1","line":391,"range":{"start_line":391,"start_character":21,"end_line":391,"end_character":67},"updated":"2022-08-22 14:50:46.000000000","message":"Probably worth mentioning that this is because the filesystem is too large.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":388,"context_line":""},{"line_number":389,"context_line":"\tallocClusters :\u003d len(p.fat)"},{"line_number":390,"context_line":"\tif allocClusters \u003e\u003d fatMask\u0026math.MaxUint32 {"},{"line_number":391,"context_line":"\t\treturn fmt.Errorf(\"filesystem contains more than 2^28 FAT entries, this is unsupported\")"},{"line_number":392,"context_line":"\t}"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"\t// Fill out FAT to minimum size for FAT32"}],"source_content_type":"text/x-go","patch_set":3,"id":"b1762e40_6cdde2e0","line":391,"range":{"start_line":391,"start_character":21,"end_line":391,"end_character":67},"in_reply_to":"614fee9e_ac7874c1","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":396,"context_line":"\t\tp.fat \u003d append(p.fat, fatFree)"},{"line_number":397,"context_line":"\t}"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"\t// TODO: Fill out FATs for fixed-size filesystems"},{"line_number":400,"context_line":"\tbs.BlocksPerFAT \u003d uint32(binary.Size(p.fat)+int(opts.BlockSize)-1) / uint32(opts.BlockSize)"},{"line_number":401,"context_line":"\tbs.RootClusterNumber \u003d uint32(rootInode.startCluster)"},{"line_number":402,"context_line":"\toccupiedBlocks :\u003d uint32(bs.ReservedBlocks) + (uint32(len(p.fat)-2) * uint32(bs.BlocksPerCluster)) + bs.BlocksPerFAT*uint32(bs.NumFATs)"}],"source_content_type":"text/x-go","patch_set":3,"id":"eb25c721_ea90ae9c","line":399,"range":{"start_line":399,"start_character":1,"end_line":399,"end_character":50},"updated":"2022-08-22 14:50:46.000000000","message":"Is this handled gracefully right now?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":396,"context_line":"\t\tp.fat \u003d append(p.fat, fatFree)"},{"line_number":397,"context_line":"\t}"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"\t// TODO: Fill out FATs for fixed-size filesystems"},{"line_number":400,"context_line":"\tbs.BlocksPerFAT \u003d uint32(binary.Size(p.fat)+int(opts.BlockSize)-1) / uint32(opts.BlockSize)"},{"line_number":401,"context_line":"\tbs.RootClusterNumber \u003d uint32(rootInode.startCluster)"},{"line_number":402,"context_line":"\toccupiedBlocks :\u003d uint32(bs.ReservedBlocks) + (uint32(len(p.fat)-2) * uint32(bs.BlocksPerCluster)) + bs.BlocksPerFAT*uint32(bs.NumFATs)"}],"source_content_type":"text/x-go","patch_set":3,"id":"087888aa_6077cd6e","line":399,"range":{"start_line":399,"start_character":1,"end_line":399,"end_character":50},"in_reply_to":"eb25c721_ea90ae9c","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":410,"context_line":"\t\tfs.NextFreeCluster \u003d uint32(allocClusters) + 1"},{"line_number":411,"context_line":"\t}"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"\t// Write superblock"},{"line_number":414,"context_line":"\tif err :\u003d binary.Write(wb, binary.LittleEndian, bs); err !\u003d nil {"},{"line_number":415,"context_line":"\t\treturn err"},{"line_number":416,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"2009449e_535682ea","line":413,"range":{"start_line":413,"start_character":10,"end_line":413,"end_character":20},"updated":"2022-08-22 14:50:46.000000000","message":"Wrong filesystem :)","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":true,"context_lines":[{"line_number":410,"context_line":"\t\tfs.NextFreeCluster \u003d uint32(allocClusters) + 1"},{"line_number":411,"context_line":"\t}"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"\t// Write superblock"},{"line_number":414,"context_line":"\tif err :\u003d binary.Write(wb, binary.LittleEndian, bs); err !\u003d nil {"},{"line_number":415,"context_line":"\t\treturn err"},{"line_number":416,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"955a445c_eac7fa39","line":413,"range":{"start_line":413,"start_character":10,"end_line":413,"end_character":20},"in_reply_to":"2009449e_535682ea","updated":"2022-09-06 08:42:01.000000000","message":"You\u0027re technically correct, but FAT32 has two blocks which make up \"something\" which I just called superblock. I could comment them individually but it would make the weird backup thing at block 6 much less clear.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"40b2d5ccf58bb1d6888aa72d3e86ab47cae1e467","unresolved":false,"context_lines":[{"line_number":410,"context_line":"\t\tfs.NextFreeCluster \u003d uint32(allocClusters) + 1"},{"line_number":411,"context_line":"\t}"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"\t// Write superblock"},{"line_number":414,"context_line":"\tif err :\u003d binary.Write(wb, binary.LittleEndian, bs); err !\u003d nil {"},{"line_number":415,"context_line":"\t\treturn err"},{"line_number":416,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"29163fdd_2b2aee8f","line":413,"range":{"start_line":413,"start_character":10,"end_line":413,"end_character":20},"in_reply_to":"955a445c_eac7fa39","updated":"2022-09-06 09:09:01.000000000","message":"Ack","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"}],"metropolis/pkg/fat32/fsck_test.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":26,"context_line":"\t\tt.Fatalf(\"failed to write test FS: %v\", err)"},{"line_number":27,"context_line":"\t}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"\tfsckCmd :\u003d exec.Command(fsckPath, \"-b\", \"-n\", \"-S\", testFile.Name())"},{"line_number":30,"context_line":"\tresult, err :\u003d fsckCmd.CombinedOutput()"},{"line_number":31,"context_line":"\tif err !\u003d nil {"},{"line_number":32,"context_line":"\t\tt.Errorf(\"fsck failed: %v\", string(result))"}],"source_content_type":"text/x-go","patch_set":3,"id":"87f67a52_d5ca7ca0","line":29,"range":{"start_line":29,"start_character":35,"end_line":29,"end_character":51},"updated":"2022-08-22 14:50:46.000000000","message":"What do these flags do? What\u0027s the condition for this to return 0 / ie. what\u0027s the condition for testWithFsck to pass?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\t\tt.Fatalf(\"failed to write test FS: %v\", err)"},{"line_number":27,"context_line":"\t}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"\tfsckCmd :\u003d exec.Command(fsckPath, \"-b\", \"-n\", \"-S\", testFile.Name())"},{"line_number":30,"context_line":"\tresult, err :\u003d fsckCmd.CombinedOutput()"},{"line_number":31,"context_line":"\tif err !\u003d nil {"},{"line_number":32,"context_line":"\t\tt.Errorf(\"fsck failed: %v\", string(result))"}],"source_content_type":"text/x-go","patch_set":3,"id":"7a38f6b7_3d851fd4","line":29,"range":{"start_line":29,"start_character":35,"end_line":29,"end_character":51},"in_reply_to":"87f67a52_d5ca7ca0","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":33,"context_line":"\t}"},{"line_number":34,"context_line":"}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"func TestBasicFsck(t *testing.T) {"},{"line_number":37,"context_line":"\t// Test both common block sizes (512 and 4096 bytes) as well as the largest"},{"line_number":38,"context_line":"\t// supported one (32K)"},{"line_number":39,"context_line":"\tfor _, blockSize :\u003d range []uint16{512, 4096, 32768} {"}],"source_content_type":"text/x-go","patch_set":3,"id":"4918f072_f6f66fed","line":36,"range":{"start_line":36,"start_character":5,"end_line":36,"end_character":18},"updated":"2022-08-22 14:50:46.000000000","message":"Can we easily add a ktest that exercises this against the kernel FAT implementation, similarly to how we test erofs?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\t}"},{"line_number":34,"context_line":"}"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"func TestBasicFsck(t *testing.T) {"},{"line_number":37,"context_line":"\t// Test both common block sizes (512 and 4096 bytes) as well as the largest"},{"line_number":38,"context_line":"\t// supported one (32K)"},{"line_number":39,"context_line":"\tfor _, blockSize :\u003d range []uint16{512, 4096, 32768} {"}],"source_content_type":"text/x-go","patch_set":3,"id":"4f107632_e7bcc709","line":36,"range":{"start_line":36,"start_character":5,"end_line":36,"end_character":18},"in_reply_to":"4918f072_f6f66fed","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"}],"metropolis/pkg/fat32/structs.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":15,"context_line":"type bootSector struct {"},{"line_number":16,"context_line":"\t// Jump instruction to boot code."},{"line_number":17,"context_line":"\tJmpInstruction [3]byte"},{"line_number":18,"context_line":"\t// Creator name. \"MSWIN4.1\" recommended for compatibility."},{"line_number":19,"context_line":"\tOEMName [8]byte"},{"line_number":20,"context_line":"\t// Count of bytes per sector (i.e. logical sector size)"},{"line_number":21,"context_line":"\t// Must be one of 512, 1024, 2048 or 4096"}],"source_content_type":"text/x-go","patch_set":3,"id":"34baf8f2_5d9840f3","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":16},"updated":"2022-08-22 14:50:46.000000000","message":"Left-padded with zeroes, right?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":true,"context_lines":[{"line_number":15,"context_line":"type bootSector struct {"},{"line_number":16,"context_line":"\t// Jump instruction to boot code."},{"line_number":17,"context_line":"\tJmpInstruction [3]byte"},{"line_number":18,"context_line":"\t// Creator name. \"MSWIN4.1\" recommended for compatibility."},{"line_number":19,"context_line":"\tOEMName [8]byte"},{"line_number":20,"context_line":"\t// Count of bytes per sector (i.e. logical sector size)"},{"line_number":21,"context_line":"\t// Must be one of 512, 1024, 2048 or 4096"}],"source_content_type":"text/x-go","patch_set":3,"id":"8519bc45_f9a27dd2","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":16},"in_reply_to":"34baf8f2_5d9840f3","updated":"2022-09-06 08:42:01.000000000","message":"Most formatters just make their name 8 bytes. Windows did, mkfs.vfat did, we did. The canonical document says nothing about how to pad.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"40b2d5ccf58bb1d6888aa72d3e86ab47cae1e467","unresolved":false,"context_lines":[{"line_number":15,"context_line":"type bootSector struct {"},{"line_number":16,"context_line":"\t// Jump instruction to boot code."},{"line_number":17,"context_line":"\tJmpInstruction [3]byte"},{"line_number":18,"context_line":"\t// Creator name. \"MSWIN4.1\" recommended for compatibility."},{"line_number":19,"context_line":"\tOEMName [8]byte"},{"line_number":20,"context_line":"\t// Count of bytes per sector (i.e. logical sector size)"},{"line_number":21,"context_line":"\t// Must be one of 512, 1024, 2048 or 4096"}],"source_content_type":"text/x-go","patch_set":3,"id":"2b0dda67_0a08afbf","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":16},"in_reply_to":"8519bc45_f9a27dd2","updated":"2022-09-06 09:09:01.000000000","message":"Ack","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\t// volume."},{"line_number":42,"context_line":"\tHiddenSectors uint32"},{"line_number":43,"context_line":"\t// Total count of sectors on the volume."},{"line_number":44,"context_line":"\tTotalBlocks uint32"},{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"}],"source_content_type":"text/x-go","patch_set":3,"id":"54617714_56e7bb8b","line":44,"range":{"start_line":44,"start_character":1,"end_line":44,"end_character":12},"updated":"2022-08-22 14:50:46.000000000","message":"Isn\u0027t this something like \u0027Large Sector Count\u0027? That\u0027s what the osdev wiki tells me. I guess we are always dealing with a \u0027Large Volume\u0027, so effectively this is for us \u0027Sector Count\u0027.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"40b2d5ccf58bb1d6888aa72d3e86ab47cae1e467","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\t// volume."},{"line_number":42,"context_line":"\tHiddenSectors uint32"},{"line_number":43,"context_line":"\t// Total count of sectors on the volume."},{"line_number":44,"context_line":"\tTotalBlocks uint32"},{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"}],"source_content_type":"text/x-go","patch_set":3,"id":"a9e620d4_f84e92d2","line":44,"range":{"start_line":44,"start_character":1,"end_line":44,"end_character":12},"in_reply_to":"0f380676_2b22bc78","updated":"2022-09-06 09:09:01.000000000","message":"Ack","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\t// volume."},{"line_number":42,"context_line":"\tHiddenSectors uint32"},{"line_number":43,"context_line":"\t// Total count of sectors on the volume."},{"line_number":44,"context_line":"\tTotalBlocks uint32"},{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"}],"source_content_type":"text/x-go","patch_set":3,"id":"0f380676_2b22bc78","line":44,"range":{"start_line":44,"start_character":1,"end_line":44,"end_character":12},"in_reply_to":"54617714_56e7bb8b","updated":"2022-09-06 08:42:01.000000000","message":"I avoided the term Sector where it refers to a block size as it\u0027s pretty confusing in current setups as setups like 512e have a 4K sector size but a 512 byte block size. Also both SCSI and SATA use LBA (Logical Block Address) when accessing \"modern\" (\u003c20 years old) disks, so even there people are no longer calling the thing sectors.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":43,"context_line":"\t// Total count of sectors on the volume."},{"line_number":44,"context_line":"\tTotalBlocks uint32"},{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"},{"line_number":48,"context_line":"\tFlags uint16"},{"line_number":49,"context_line":"\t_     [2]byte"}],"source_content_type":"text/x-go","patch_set":3,"id":"7e595a41_ecf6064b","line":46,"range":{"start_line":46,"start_character":1,"end_line":46,"end_character":13},"updated":"2022-08-22 14:50:46.000000000","message":"SectorsPerFAT?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":true,"context_lines":[{"line_number":43,"context_line":"\t// Total count of sectors on the volume."},{"line_number":44,"context_line":"\tTotalBlocks uint32"},{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"},{"line_number":48,"context_line":"\tFlags uint16"},{"line_number":49,"context_line":"\t_     [2]byte"}],"source_content_type":"text/x-go","patch_set":3,"id":"8740b5ec_d1de34cd","line":46,"range":{"start_line":46,"start_character":1,"end_line":46,"end_character":13},"in_reply_to":"7e595a41_ecf6064b","updated":"2022-09-06 08:42:01.000000000","message":"Same as above.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"40b2d5ccf58bb1d6888aa72d3e86ab47cae1e467","unresolved":false,"context_lines":[{"line_number":43,"context_line":"\t// Total count of sectors on the volume."},{"line_number":44,"context_line":"\tTotalBlocks uint32"},{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"},{"line_number":48,"context_line":"\tFlags uint16"},{"line_number":49,"context_line":"\t_     [2]byte"}],"source_content_type":"text/x-go","patch_set":3,"id":"e715d1ae_b937ff17","line":46,"range":{"start_line":46,"start_character":1,"end_line":46,"end_character":13},"in_reply_to":"8740b5ec_d1de34cd","updated":"2022-09-06 09:09:01.000000000","message":"Ack","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"},{"line_number":48,"context_line":"\tFlags uint16"},{"line_number":49,"context_line":"\t_     [2]byte"},{"line_number":50,"context_line":"\t// Cluster number of the first cluster of the root directory. Usually 2."},{"line_number":51,"context_line":"\tRootClusterNumber uint32"}],"source_content_type":"text/x-go","patch_set":3,"id":"81f62d4d_4e10515b","line":48,"range":{"start_line":48,"start_character":1,"end_line":48,"end_character":6},"updated":"2022-08-22 14:50:46.000000000","message":"We don\u0027t ever set this - this is fine being a zero value, right?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"\t// Count of sectors per FAT."},{"line_number":46,"context_line":"\tBlocksPerFAT uint32"},{"line_number":47,"context_line":"\t// Flags for FAT32"},{"line_number":48,"context_line":"\tFlags uint16"},{"line_number":49,"context_line":"\t_     [2]byte"},{"line_number":50,"context_line":"\t// Cluster number of the first cluster of the root directory. Usually 2."},{"line_number":51,"context_line":"\tRootClusterNumber uint32"}],"source_content_type":"text/x-go","patch_set":3,"id":"167def8a_7d6528d4","line":48,"range":{"start_line":48,"start_character":1,"end_line":48,"end_character":6},"in_reply_to":"81f62d4d_4e10515b","updated":"2022-09-06 08:42:01.000000000","message":"Yeah, this is fine. It\u0027s mostly reserved as well as used to enable \"transactional\" FAT which nobody really bothered to implement fully.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":60,"context_line":"\tBootSignature uint8"},{"line_number":61,"context_line":"\t// ID of this filesystem"},{"line_number":62,"context_line":"\tID uint32"},{"line_number":63,"context_line":"\t// Human-readable label of this filesystem"},{"line_number":64,"context_line":"\tLabel [11]byte"},{"line_number":65,"context_line":"\t// Always set to ASCII \"FAT32    \""},{"line_number":66,"context_line":"\tType [8]byte"}],"source_content_type":"text/x-go","patch_set":3,"id":"96770c82_8097d931","line":63,"range":{"start_line":63,"start_character":21,"end_line":63,"end_character":22},"updated":"2022-08-22 14:50:46.000000000","message":"Padded with spaces, I think.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"\tBootSignature uint8"},{"line_number":61,"context_line":"\t// ID of this filesystem"},{"line_number":62,"context_line":"\tID uint32"},{"line_number":63,"context_line":"\t// Human-readable label of this filesystem"},{"line_number":64,"context_line":"\tLabel [11]byte"},{"line_number":65,"context_line":"\t// Always set to ASCII \"FAT32    \""},{"line_number":66,"context_line":"\tType [8]byte"}],"source_content_type":"text/x-go","patch_set":3,"id":"1a8810a1_22bfc8d6","line":63,"range":{"start_line":63,"start_character":21,"end_line":63,"end_character":22},"in_reply_to":"96770c82_8097d931","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":90,"context_line":"type dirEntry struct {"},{"line_number":91,"context_line":"\t// DOS 8.3 file name."},{"line_number":92,"context_line":"\tDOSName           [11]byte"},{"line_number":93,"context_line":"\tAttributes        uint8"},{"line_number":94,"context_line":"\t_                 [8]byte"},{"line_number":95,"context_line":"\tFirstClusterHigh  uint16"},{"line_number":96,"context_line":"\tLastWrittenToTime uint16"}],"source_content_type":"text/x-go","patch_set":3,"id":"ac12e5e9_a0057fc8","line":93,"range":{"start_line":93,"start_character":1,"end_line":93,"end_character":11},"updated":"2022-08-22 14:50:46.000000000","message":"This is where the magic of LFN is triggered by setting this to a weird bitset, and I think it\u0027s worth to at least point it out here in a comment (although an enum would be nice, too).","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"type dirEntry struct {"},{"line_number":91,"context_line":"\t// DOS 8.3 file name."},{"line_number":92,"context_line":"\tDOSName           [11]byte"},{"line_number":93,"context_line":"\tAttributes        uint8"},{"line_number":94,"context_line":"\t_                 [8]byte"},{"line_number":95,"context_line":"\tFirstClusterHigh  uint16"},{"line_number":96,"context_line":"\tLastWrittenToTime uint16"}],"source_content_type":"text/x-go","patch_set":3,"id":"2b55cd68_aec25033","line":93,"range":{"start_line":93,"start_character":1,"end_line":93,"end_character":11},"in_reply_to":"ac12e5e9_a0057fc8","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":91,"context_line":"\t// DOS 8.3 file name."},{"line_number":92,"context_line":"\tDOSName           [11]byte"},{"line_number":93,"context_line":"\tAttributes        uint8"},{"line_number":94,"context_line":"\t_                 [8]byte"},{"line_number":95,"context_line":"\tFirstClusterHigh  uint16"},{"line_number":96,"context_line":"\tLastWrittenToTime uint16"},{"line_number":97,"context_line":"\tLastWrittenToDate uint16"}],"source_content_type":"text/x-go","patch_set":3,"id":"7cfc8281_4a85c068","line":94,"range":{"start_line":94,"start_character":1,"end_line":94,"end_character":3},"updated":"2022-08-22 14:50:46.000000000","message":"I guess we\u0027re okay never having a creation time for directories?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"\t// DOS 8.3 file name."},{"line_number":92,"context_line":"\tDOSName           [11]byte"},{"line_number":93,"context_line":"\tAttributes        uint8"},{"line_number":94,"context_line":"\t_                 [8]byte"},{"line_number":95,"context_line":"\tFirstClusterHigh  uint16"},{"line_number":96,"context_line":"\tLastWrittenToTime uint16"},{"line_number":97,"context_line":"\tLastWrittenToDate uint16"}],"source_content_type":"text/x-go","patch_set":3,"id":"1e3a8325_55f1bcb7","line":94,"range":{"start_line":94,"start_character":1,"end_line":94,"end_character":3},"in_reply_to":"7cfc8281_4a85c068","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":100,"context_line":"}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"const ("},{"line_number":103,"context_line":"\tlastSequenceNumberFlag \u003d 0x40"},{"line_number":104,"context_line":"\tcodepointsPerEntry     \u003d 5 + 6 + 2"},{"line_number":105,"context_line":")"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"b0ad1dfa_aa974fca","line":103,"range":{"start_line":103,"start_character":1,"end_line":103,"end_character":23},"updated":"2022-08-22 14:50:46.000000000","message":"// lastSequenceNumberFlag is logically-ORed with with sequence number of the last Long File Name entry to mark it as such.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"const ("},{"line_number":103,"context_line":"\tlastSequenceNumberFlag \u003d 0x40"},{"line_number":104,"context_line":"\tcodepointsPerEntry     \u003d 5 + 6 + 2"},{"line_number":105,"context_line":")"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"e8663377_0745325d","line":103,"range":{"start_line":103,"start_character":1,"end_line":103,"end_character":23},"in_reply_to":"b0ad1dfa_aa974fca","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"const ("},{"line_number":103,"context_line":"\tlastSequenceNumberFlag \u003d 0x40"},{"line_number":104,"context_line":"\tcodepointsPerEntry     \u003d 5 + 6 + 2"},{"line_number":105,"context_line":")"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"// VFAT long file name prepended entry"}],"source_content_type":"text/x-go","patch_set":3,"id":"21fc008b_3b238b2e","line":104,"range":{"start_line":104,"start_character":1,"end_line":104,"end_character":19},"updated":"2022-08-22 14:50:46.000000000","message":"// codepointsPerEntry is the number of UTF-16 codepoints that fit into a single Long File Name entry.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"const ("},{"line_number":103,"context_line":"\tlastSequenceNumberFlag \u003d 0x40"},{"line_number":104,"context_line":"\tcodepointsPerEntry     \u003d 5 + 6 + 2"},{"line_number":105,"context_line":")"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"// VFAT long file name prepended entry"}],"source_content_type":"text/x-go","patch_set":3,"id":"a5b58bb9_9e7b02b7","line":104,"range":{"start_line":104,"start_character":1,"end_line":104,"end_character":19},"in_reply_to":"21fc008b_3b238b2e","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"}],"metropolis/pkg/fat32/utils.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":7,"context_line":"\t\"time\""},{"line_number":8,"context_line":")"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"type ReaderWithSize struct {"},{"line_number":11,"context_line":"\tio.Reader"},{"line_number":12,"context_line":"\tsize int64"},{"line_number":13,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"c8414eb8_246e9e63","line":10,"range":{"start_line":10,"start_character":5,"end_line":10,"end_character":19},"updated":"2022-08-22 14:50:46.000000000","message":"This isn\u0027t used anywhere, is it?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"40b2d5ccf58bb1d6888aa72d3e86ab47cae1e467","unresolved":true,"context_lines":[{"line_number":7,"context_line":"\t\"time\""},{"line_number":8,"context_line":")"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"type ReaderWithSize struct {"},{"line_number":11,"context_line":"\tio.Reader"},{"line_number":12,"context_line":"\tsize int64"},{"line_number":13,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"c83df38c_8b9d0e89","line":10,"range":{"start_line":10,"start_character":5,"end_line":10,"end_character":19},"in_reply_to":"a478b903_ce3f0b24","updated":"2022-09-06 09:09:01.000000000","message":"I mean, if we\u0027re not using it anywhere yet... can we just remove it for now? When we end up needing it, then we\u0027ll just drop it into some nearby helper pkg.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"94d228b67647526d4d1051dc146eadc6c8eee4c1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"\t\"time\""},{"line_number":8,"context_line":")"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"type ReaderWithSize struct {"},{"line_number":11,"context_line":"\tio.Reader"},{"line_number":12,"context_line":"\tsize int64"},{"line_number":13,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"d276951d_553fd561","line":10,"range":{"start_line":10,"start_character":5,"end_line":10,"end_character":19},"in_reply_to":"c83df38c_8b9d0e89","updated":"2022-09-06 11:53:23.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":true,"context_lines":[{"line_number":7,"context_line":"\t\"time\""},{"line_number":8,"context_line":")"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"type ReaderWithSize struct {"},{"line_number":11,"context_line":"\tio.Reader"},{"line_number":12,"context_line":"\tsize int64"},{"line_number":13,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"a478b903_ce3f0b24","line":10,"range":{"start_line":10,"start_character":5,"end_line":10,"end_character":19},"in_reply_to":"c8414eb8_246e9e63","updated":"2022-09-06 08:42:01.000000000","message":"No, this is not used as part of the fat32 package. This (together with all of the SizedReader-related code) should probably move into a separate package. But I\u0027m not sure what to call it.","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":44,"context_line":"\tif r.done {"},{"line_number":45,"context_line":"\t\treturn 0, io.EOF"},{"line_number":46,"context_line":"\t}"},{"line_number":47,"context_line":"\tif err \u003d r.init(); err !\u003d nil {"},{"line_number":48,"context_line":"\t\treturn"},{"line_number":49,"context_line":"\t}"},{"line_number":50,"context_line":"\tn, err \u003d r.f.Read(b)"}],"source_content_type":"text/x-go","patch_set":3,"id":"ff24dd03_fe4bcc2c","line":47,"range":{"start_line":47,"start_character":1,"end_line":47,"end_character":32},"updated":"2022-08-22 14:50:46.000000000","message":"Wait, doesn\u0027t this re-open the file on every read?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"\tif r.done {"},{"line_number":45,"context_line":"\t\treturn 0, io.EOF"},{"line_number":46,"context_line":"\t}"},{"line_number":47,"context_line":"\tif err \u003d r.init(); err !\u003d nil {"},{"line_number":48,"context_line":"\t\treturn"},{"line_number":49,"context_line":"\t}"},{"line_number":50,"context_line":"\tn, err \u003d r.f.Read(b)"}],"source_content_type":"text/x-go","patch_set":3,"id":"b1225307_4ba137f5","line":47,"range":{"start_line":47,"start_character":1,"end_line":47,"end_character":32},"in_reply_to":"ff24dd03_fe4bcc2c","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":55,"context_line":"\treturn"},{"line_number":56,"context_line":"}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"func NewFileReader(name string) (*LazyFileReader, error) {"},{"line_number":59,"context_line":"\tinfo, err :\u003d os.Stat(name)"},{"line_number":60,"context_line":"\tif err !\u003d nil {"},{"line_number":61,"context_line":"\t\treturn nil, fmt.Errorf(\"failed to stat: %w\", err)"}],"source_content_type":"text/x-go","patch_set":3,"id":"d9feb4b2_827bfa09","line":58,"range":{"start_line":58,"start_character":5,"end_line":58,"end_character":18},"updated":"2022-08-22 14:50:46.000000000","message":"Is this actually used anywhere?","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"\treturn"},{"line_number":56,"context_line":"}"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"func NewFileReader(name string) (*LazyFileReader, error) {"},{"line_number":59,"context_line":"\tinfo, err :\u003d os.Stat(name)"},{"line_number":60,"context_line":"\tif err !\u003d nil {"},{"line_number":61,"context_line":"\t\treturn nil, fmt.Errorf(\"failed to stat: %w\", err)"}],"source_content_type":"text/x-go","patch_set":3,"id":"36384d4e_023b16a0","line":58,"range":{"start_line":58,"start_character":5,"end_line":58,"end_character":18},"in_reply_to":"d9feb4b2_827bfa09","updated":"2022-09-06 08:42:01.000000000","message":"Ack","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ece72965d56625f5bd256884c4312cd321d203ed","unresolved":true,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"// Wraps a writer and provides support for writing padding up to a specified"},{"line_number":70,"context_line":"// alignment."},{"line_number":71,"context_line":"// TODO: Implement WriterTo when w implements it to allow for copy offload"},{"line_number":72,"context_line":"type blockWriter struct {"},{"line_number":73,"context_line":"\tw io.Writer"},{"line_number":74,"context_line":"\tn int64"}],"source_content_type":"text/x-go","patch_set":3,"id":"5b4d5909_0a46513d","line":71,"range":{"start_line":71,"start_character":3,"end_line":71,"end_character":74},"updated":"2022-08-22 14:50:46.000000000","message":"This should be either TODO(person) or TODO(issue number).","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a1bd32433265882c66a89b2b15d02d931cea4b0b","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"// Wraps a writer and provides support for writing padding up to a specified"},{"line_number":70,"context_line":"// alignment."},{"line_number":71,"context_line":"// TODO: Implement WriterTo when w implements it to allow for copy offload"},{"line_number":72,"context_line":"type blockWriter struct {"},{"line_number":73,"context_line":"\tw io.Writer"},{"line_number":74,"context_line":"\tn int64"}],"source_content_type":"text/x-go","patch_set":3,"id":"8a7be7cd_82e0b7d7","line":71,"range":{"start_line":71,"start_character":3,"end_line":71,"end_character":74},"in_reply_to":"5b4d5909_0a46513d","updated":"2022-09-06 08:42:01.000000000","message":"Done","commit_id":"4e68e5ac014c6a44acf712487522df6cad75e9dc"}]}
