summaryrefslogtreecommitdiff
path: root/rust-src
AgeCommit message (Collapse)Author
2023-05-02Update bcachefs sources to 6a20aede29 bcachefs: Fix quotas + snapshotsv0.29Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-04-27chore(rust): add opt_get! and expose some FMODE_* as Rust constTruongSinh Tran-Nguyen
In an effort to rewrite `bch2_read_super` from C to Rust, it is neccessary to have `opt_get!` macro defined, and some FMODE_* consts (defined as macro in `include/linux/blkdev.h`) defined as Rust const. Bindgen is currently unable to exapnd C functional macro [1], this this commit use the workaround as introduced in [2]. [1] https://github.com/rust-lang/rust-bindgen/issues/753 [2] https://github.com/rust-lang/rust-bindgen/issues/753#issuecomment-608546390 Signed-off-by: TruongSinh Tran-Nguyen <i@truongsinh.pro>
2023-04-26feat(cmd_mount): Add support for magic keyword `OLD_BLKID_UUID`TruongSinh Tran-Nguyen
This commit enhances mount sub command by allowing it to accept `OLD_BLKID_UUID=xxx` as the device, enabling whole fs mounting without relying on colon-separated devices. Using colon-separated devices in fstab is discouraged due to potential device reference issues after reboot. Additionally, using `UUID=xxx` in fstab or with `mount -t bcachefs` is currently infeasible as it depends on blkid, which prior to v2.39, does not recognize bcachefs. This update enables mounting via fstab using `OLD_BLKID_UUID=xxx` as obtained from `bcachefs show-super` "External UUID". Signed-off-by: TruongSinh Tran-Nguyen <i@truongsinh.pro>
2023-04-26chore: logger for idiomatic style and expanded logging levelsTruongSinh Tran-Nguyen
Improve the Rust logger by adhering to idiomatic Rust conventions and incorporating additional logging levels: warn, debug, and trace. Signed-off-by: TruongSinh Tran-Nguyen <i@truongsinh.pro>
2023-03-06cmd_list.rs: Finish list modes, delete cmd_list.cKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-04rust: Implement BtreeNodeIterKent Overstreet
This implements BtreeNodeIter, and adds it to cmd_list.rs - the next step in having a full replacement for cmd_list.c Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-04rust: Fix ptr casting in Fs::open()Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-02rust: BkeySC now has correct lifetime on BtreeIterKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: Filesystem options now supportedKent Overstreet
This implements opt_set!(), which works exactly the same as the C version and allows filesystem options to be specified in Rust code. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: BtreeTrans lifetime now marked w.r.t. FsKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: BkeyValCKent Overstreet
Now we have a rust-style enum for key types Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: BkeySCKent Overstreet
Implement a rust equivalent to bkey_s_c, which uses references with the correct lifetimes: now cmd_list.rs doesn't need unsafe. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28bcachefs: Annotate BtreeIter with BtreeTrans lifetimeKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: Simplify bpos FromStrKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-27rust: BtreeIterFlagsKent Overstreet
This adds a new wrapper type for btree iterator flags. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-27Rust: Start of cmd_list rewriteKent Overstreet
This is a _very_ preliminary rewrite of the cmd_list tool in rust, which is intended to be a testing ground for a safe interface in Rust to the core btree interface. This adds rust wrappers for: bch_fs: provides bch2_fs_open(), bch2_fs_stop btree_trans: provides bch2_trans_init(), bch2_trans_exit() btree_iter: provides peek, peek_and_restart, advance bch_errcode: implements Display (wraps bch2_err_str()) bpos: implements Ord (wraps bpos_cmp()) bkey_s_c: implements Display (wraps bch2_bkey_val_to_text()) and other assorted types. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-27nix fix up! Rust now integrated into bcachefs binaryDaniel Hill
Heavily simplified to just call make with the required rust dependencies. Signed-off-by: Daniel Hill <daniel@gluo.nz>
2023-02-22Made the -k option for mount.bcachefs default to ask, without messing up ↵Westly Ward
formatting Signed-off-by: Westly Ward <sonicrules1234@gmail.com>
2023-02-21rust-src: Clean up read_super bindingsKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-21More rust improvementsKent Overstreet
- passing of arguments from c -> rust code now works correctly - 'bcachefs mount' now handles being passed a device or devices Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-21Rust now integrated into bcachefs binaryKent Overstreet
Rust is now required for building the bcachefs tool, and rust code is now fully integrated with the C codebase - meaning it is possible to call back and forth. The mount helper is now a subcommand, 'mount.bcachefs' is now a small shell wrapper that invokes 'bcachefs mount'. This will make it easier to start rewriting other subcommands in rust, and eventually the whole command line interface. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-11mount: support remountDaniel Hill
remount is handled by libc, not the kernel mount procedure, this fixes remounts. Also sorted the list of flags. Signed-off-by: Daniel Hill <daniel@gluo.nz>
2023-02-02nix: fix compilation issuesDaniel Hill
Update Cargo.lock files to match new dependancies Bump nixpkgs pin
2023-01-18rust: replace tracing with loggerAlexander Fougner
tracing framework is a overengineered for simple mount helper. Add a few very barebone logging macros to allow configurable verbosity and colorized output with a small footprint. Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-01-16rust: use rustfmt defaultsAlexander Fougner
follow the kernel style guide, i.e idiomatic rust style. Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-01-15rust: suppress errors on fs probingAlexander Fougner
suppress errors for any non-bchfs blockdevs found during probing Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-01-15rust: support fstab style mountAlexander Fougner
- add support for fstab format, UUID=<uuid> - structopt is no longer actively maintained, replace with clap v4 which support everything structopt can and more. - update dependencies Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-01-03nix: overhaul build system.Daniel Hill
Removed outdated overlay. Simply build tooling using bingenHook and propagated*Inputs Signed-off-by: Daniel Hill <daniel@gluo.nz>
2023-01-03rust: update bindgen to 0.63Daniel Hill
Signed-off-by: Daniel Hill <daniel@gluo.nz>
2022-11-19rust-src: cargo updateKent Overstreet
Update locked dependencies Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2021-10-18split mount into a library crate for rust reuseKayla Firestack
update makefile to output shared library and rust build fix default.nix to properly get the binary name for `ln`ing - move binary to main.rs add rustfmt and gitignore files move build.rs file into bch_bindgen for reuse between projects add outputs to nix flake and checks add mount.toml to makefile
2021-10-18add mount and bch-bindgen nix builder fileKayla Firestack
update kernel diffHash
2021-10-18move mount into rust-src, add to overlayKayla Firestack