{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":237059910,"defaultBranch":"master","name":"simplefs","ownerLogin":"sysprog21","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-01-29T19:03:19.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/22310129?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714958164.0","currentOid":""},"activityList":{"items":[{"before":"56d2ca07360dc4106628e563e2850e1ee01f079d","after":"31258fcaf09482e00c5e68d2a62db2626e487402","ref":"refs/heads/master","pushedAt":"2024-08-20T13:53:02.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #64 from RoyWFHuang/master\n\nFix symlink block allocation mismatch causing unlink bitmap errors","shortMessageHtmlLink":"Merge pull request #64 from RoyWFHuang/master"}},{"before":"403e1b8d67bd8f01ac15c603ac10bba585fcf261","after":"56d2ca07360dc4106628e563e2850e1ee01f079d","ref":"refs/heads/master","pushedAt":"2024-08-04T16:09:41.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #53 from RoyWFHuang/master\n\nFix sb_read and umount cache not be freed","shortMessageHtmlLink":"Merge pull request #53 from RoyWFHuang/master"}},{"before":"e76e0cc745db7c0786d38ce4a8e8406e7ea533fb","after":"403e1b8d67bd8f01ac15c603ac10bba585fcf261","ref":"refs/heads/master","pushedAt":"2024-07-01T02:24:36.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #61 from jason50123/external-journal\n\nImplement mounting/unmounting for external journal device","shortMessageHtmlLink":"Merge pull request #61 from jason50123/external-journal"}},{"before":"52cf2a1a7d43ac8d29aaaf30abac0f2eb338117f","after":"e76e0cc745db7c0786d38ce4a8e8406e7ea533fb","ref":"refs/heads/master","pushedAt":"2024-06-25T17:10:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Apply editorial changes","shortMessageHtmlLink":"Apply editorial changes"}},{"before":"92f3287dd5e9cde41743485ead8828319894794f","after":"52cf2a1a7d43ac8d29aaaf30abac0f2eb338117f","ref":"refs/heads/master","pushedAt":"2024-06-25T16:48:48.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #62 from HotMercury/master\n\nReimplement the read and the write operations","shortMessageHtmlLink":"Merge pull request #62 from HotMercury/master"}},{"before":"b8c88bffa4a5072812f9d2ef588222398d9022c2","after":"92f3287dd5e9cde41743485ead8828319894794f","ref":"refs/heads/master","pushedAt":"2024-06-21T08:34:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"CI: Enable newline checks","shortMessageHtmlLink":"CI: Enable newline checks"}},{"before":"e05fa22986069718a03a9b67c8a874a36664d49f","after":"b8c88bffa4a5072812f9d2ef588222398d9022c2","ref":"refs/heads/master","pushedAt":"2024-06-21T08:32:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"CI: Enable newline checks","shortMessageHtmlLink":"CI: Enable newline checks"}},{"before":"79a28317620a38ca6e52064c3116ceb12f0b8fe5","after":"e05fa22986069718a03a9b67c8a874a36664d49f","ref":"refs/heads/master","pushedAt":"2024-06-21T04:54:40.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #60 from HotMercury/master\n\nFix missing data synchronization","shortMessageHtmlLink":"Merge pull request #60 from HotMercury/master"}},{"before":"2ee1fc1ba4a1c88cd0a95d966137c69ff5cb5b52","after":"79a28317620a38ca6e52064c3116ceb12f0b8fe5","ref":"refs/heads/master","pushedAt":"2024-06-17T15:50:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Implement simplefs_file_ops:open (#56)\n\nIn the registration of simplefs_file_ops callbacks, there is no open\r\noperation, which may lead to creating unexpected space. This commit\r\nadds an open operation to handle file truncation when opening files\r\nwith O_WRONLY, O_RDWR, and O_TRUNC flags. This prevents unintended\r\nspace allocation by ensuring proper truncation of files.\r\n\r\nThe implementation checks the flags associated with the file opening\r\nmode and performs truncation if the file is being opened for write or\r\nread/write and the O_TRUNC flag is set. Truncation is achieved by\r\nreading the file's index block from disk, iterating over the data block\r\npointers, releasing the associated data blocks, and updating the\r\ninode metadata (size and block count).\r\n\r\nClose #55","shortMessageHtmlLink":"Implement simplefs_file_ops:open (#56)"}},{"before":"5929c207b8651fc1d3df918bbe5fb4275a63d628","after":"2ee1fc1ba4a1c88cd0a95d966137c69ff5cb5b52","ref":"refs/heads/master","pushedAt":"2024-05-21T16:37:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Enforce SIMPLEFS_{AT_LEAST,LESS_EQUAL} macro\n\nIt would look a bit more elegant with the introduction of Linux kernel\nversion check macros.","shortMessageHtmlLink":"Enforce SIMPLEFS_{AT_LEAST,LESS_EQUAL} macro"}},{"before":"e302ed2c87db54d0c952e1a69ab64739b1d4ed20","after":"5929c207b8651fc1d3df918bbe5fb4275a63d628","ref":"refs/heads/master","pushedAt":"2024-05-21T16:19:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Add comments","shortMessageHtmlLink":"Add comments"}},{"before":"71ffd709b3152377efedd6150fc73079a5e817ff","after":"e302ed2c87db54d0c952e1a69ab64739b1d4ed20","ref":"refs/heads/master","pushedAt":"2024-05-21T15:28:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Improve error handling","shortMessageHtmlLink":"Improve error handling"}},{"before":"855c339457b782843a790e1e67e017e9b219dd46","after":"71ffd709b3152377efedd6150fc73079a5e817ff","ref":"refs/heads/master","pushedAt":"2024-05-19T16:31:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Introduce SIMPLEFS_AT_LEAST to detect versions\n\nAs the Linux kernel development continuously changes its kernel APIs,\nit is necessary to detect the kernel versions and decide on the\ncorresponding conditional build paths during the build process. The\nSIMPLEFS_AT_LEAST macro is introduced for this purpose.","shortMessageHtmlLink":"Introduce SIMPLEFS_AT_LEAST to detect versions"}},{"before":"5e11fa703e47514d828dcb1d599e0ff7d69bd35b","after":"855c339457b782843a790e1e67e017e9b219dd46","ref":"refs/heads/master","pushedAt":"2024-05-18T15:23:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Fix potential EIO error (#51)\n\nIf we use 'dd if=/dev/random of=test.img bs=1M count=32' rather\r\nthan 'if=/dev/zero' and mount it, it will cause an EIO error and\r\nget stuck in a loop.\r\n\r\nThis commit addresses an issue where the 'ls' command would read random,\r\nmeaningless values from 'simplefs_file_ei_block' for uninitialized\r\nblocks. This occurred because the blocks contained residual data,\r\nleading to erroneous outputs.\r\n\r\nChanges:\r\n1. Clear the root extent block during the 'mkfs' process to prevent\r\n erroneous 'simplefs_file_ei_block' data.\r\n2. Ensure that file data blocks are cleared immediately upon\r\n allocation to prevent erroneous 'simplefs_file' data.\r\n\r\nClose #20 and #50","shortMessageHtmlLink":"Fix potential EIO error (#51)"}},{"before":"5a8da660c38478395cab72f2edd2603d2281623c","after":"5e11fa703e47514d828dcb1d599e0ff7d69bd35b","ref":"refs/heads/master","pushedAt":"2024-05-16T09:48:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Apply editorial changes","shortMessageHtmlLink":"Apply editorial changes"}},{"before":"bf61cd42ca9fc166d4aa445c090589f88d94a8b8","after":"5a8da660c38478395cab72f2edd2603d2281623c","ref":"refs/heads/master","pushedAt":"2024-05-15T08:37:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Correct size detection for special block devices\n\nWhen writing directly to a special block device instead of a regular\nfile image, the size reported by fstat(2) returns 0, which is incorrect.\nThis commit introduces a check to identify if the target file is a\nspecial block device. If it is, the commit uses the ioctl(2) to\naccurately determine the size of the block device.","shortMessageHtmlLink":"Correct size detection for special block devices"}},{"before":"5e11fa703e47514d828dcb1d599e0ff7d69bd35b","after":"bf61cd42ca9fc166d4aa445c090589f88d94a8b8","ref":"refs/heads/master","pushedAt":"2024-05-15T07:02:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Correct size detection for special block devices\n\nWhen writing directly to a special block device instead of a regular\nfile image, the size reported by fstat(2) returns 0, which is incorrect.\nThis commit introduces a check to identify if the target file is a\nspecial block device. If it is, the commit uses the ioctl(2) to\naccurately determine the size of the block device.","shortMessageHtmlLink":"Correct size detection for special block devices"}},{"before":"d5ca0eb326b1089c83e462de1fc8b6f47ef2c3e7","after":"5e11fa703e47514d828dcb1d599e0ff7d69bd35b","ref":"refs/heads/master","pushedAt":"2024-05-14T22:47:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Apply editorial changes","shortMessageHtmlLink":"Apply editorial changes"}},{"before":"d85278358c45a05cae35566da56460beb1bdc026","after":"d5ca0eb326b1089c83e462de1fc8b6f47ef2c3e7","ref":"refs/heads/master","pushedAt":"2024-05-14T22:01:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Fix incorrect block count calculation\n\nFor a 4MiB file, inode->i_blocks returned 1026, but the maximum block\ncount should be 1025 (including the index block). This commit rounds up\ni_blocks precisely in simplefs_write_end.","shortMessageHtmlLink":"Fix incorrect block count calculation"}},{"before":"a59b479d84be458d709e5ffeab79152c8a4a6c4a","after":"d85278358c45a05cae35566da56460beb1bdc026","ref":"refs/heads/master","pushedAt":"2024-05-07T17:49:41.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #49 from HotMercury/master\n\nEnsure superblock always fits SIMPLEFS_BLOCK_SIZE","shortMessageHtmlLink":"Merge pull request #49 from HotMercury/master"}},{"before":"8976d61580977914a4a0946e84fe6b42d1135527","after":"a59b479d84be458d709e5ffeab79152c8a4a6c4a","ref":"refs/heads/master","pushedAt":"2024-05-06T12:44:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Fix build warnings raised by Linux v6.5","shortMessageHtmlLink":"Fix build warnings raised by Linux v6.5"}},{"before":"fcac769284e3bbe40019e64e601b6c1e54da9b33","after":"8976d61580977914a4a0946e84fe6b42d1135527","ref":"refs/heads/master","pushedAt":"2024-05-06T12:24:20.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #48 from HotMercury/master\n\nFix unused variable warning","shortMessageHtmlLink":"Merge pull request #48 from HotMercury/master"}},{"before":"06707daa963b89af5861f0fb3c78bebfd8c9bef5","after":"fcac769284e3bbe40019e64e601b6c1e54da9b33","ref":"refs/heads/master","pushedAt":"2024-05-06T09:23:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Support Linux 6.8 (#47)\n\nTo align with the best practices recommended by Linux kernel v6.8, this\r\ncommit replaces direct accesses to the '__i_atime' and '__i_mtime'\r\nfields with the newly introduced accessor functions. Functions such as\r\n'inode_get_atime_sec' and 'simple_inode_init_ts' now encapsulate direct\r\ninteractions with these inode fields. This change enhances code\r\nreadability and maintainability, ensures adherence to evolving kernel\r\nAPI manners, and minimizes direct manipulation of internal structures,\r\nthereby reducing potential for bugs and improving compatibility with\r\nfuture kernel updates.","shortMessageHtmlLink":"Support Linux 6.8 (#47)"}},{"before":"0828258a3ae66f305136322fadf060e604d5b1b6","after":"06707daa963b89af5861f0fb3c78bebfd8c9bef5","ref":"refs/heads/master","pushedAt":"2024-05-06T08:44:35.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Enable safe inode cleanup\n\nThis patch facilitates the proper cleanup and removal of the inode itself\nas well as any associated cached page data.","shortMessageHtmlLink":"Enable safe inode cleanup"}},{"before":"22982747c2fb64b37cfa75516dbe7ecf7cfa5a91","after":"0828258a3ae66f305136322fadf060e604d5b1b6","ref":"refs/heads/master","pushedAt":"2024-05-06T04:25:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Refine the comments","shortMessageHtmlLink":"Refine the comments"}},{"before":"01f582a8391e33da1928962601b8160f50597e3a","after":"22982747c2fb64b37cfa75516dbe7ecf7cfa5a91","ref":"refs/heads/master","pushedAt":"2024-05-06T01:38:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Refine outdated comments\n\nThe change from root inode number 0 to 1 is necessary to maintain\ncompatibility with userspace programs that avoid using 0 as an inode\nnumber. It also resolves the issue where the . and .. links are not\nproperly displayed for the root directory, despite being emitted\ncorrectly.","shortMessageHtmlLink":"Refine outdated comments"}},{"before":"a2ee304c0aa0613466a091349f38691ea425c54d","after":null,"ref":"refs/heads/enable-github-actions","pushedAt":"2024-05-06T01:16:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"}},{"before":"0f2808323a9b59cabb51b75d5a55f00f1e1fd3a2","after":"01f582a8391e33da1928962601b8160f50597e3a","ref":"refs/heads/master","pushedAt":"2024-05-06T01:15:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Fix errors raised by missing-prototypes (#46)\n\nSince commit 0fcb708, the Linux kernel globally enforces function\r\nprototype checks. This mandates that each function must have a\r\ndeclaration to confirm that both the caller and the callee anticipate\r\nthe same argument types. Failing to meet this requirement could lead to\r\nserious bugs caused by mismatched prototypes. Therefore, this commit\r\nrequires us to add function prototypes to the header files or to declare\r\nfunctions as static, ensuring compatibility with these changes.","shortMessageHtmlLink":"Fix errors raised by missing-prototypes (#46)"}},{"before":"b5d47c8ee9c3d19abc878860460c3b0765d47959","after":"0f2808323a9b59cabb51b75d5a55f00f1e1fd3a2","ref":"refs/heads/master","pushedAt":"2024-05-02T16:27:06.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #44 from HotMercury/master\n\nFix typo","shortMessageHtmlLink":"Merge pull request #44 from HotMercury/master"}},{"before":"f46dadb0aeed2d6bed4fe792cf95e9d44eadf4ff","after":"b5d47c8ee9c3d19abc878860460c3b0765d47959","ref":"refs/heads/master","pushedAt":"2024-04-24T05:43:46.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jserv","name":"Jim Huang","path":"/jserv","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/478921?s=80&v=4"},"commit":{"message":"Merge pull request #42 from baekrang256/master\n\nUse binary search for searching extent","shortMessageHtmlLink":"Merge pull request #42 from baekrang256/master"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yMFQxMzo1MzowMi4wMDAwMDBazwAAAASfKh1W","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0yNFQwNTo0Mzo0Ni4wMDAwMDBazwAAAAQ4wsJJ"}},"title":"Activity ยท sysprog21/simplefs"}