Skip to content

Conversation

@Ayush1325
Copy link
Contributor

  • Also forward fsync and datasync to flush. UEFI does not have anything separate for metadata sync.

@rustbot label +O-UEFI

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 9, 2026
@rustbot
Copy link
Collaborator

rustbot commented Jan 9, 2026

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Comment on lines 351 to 354
pub fn flush(&self) -> io::Result<()> {
unsupported()
self.0.flush()
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Write::flush method should be a noop for Files. It's only meant to flush buffered writers to the OS, since files are unbuffered there's nothing to do.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have made it a noop and added a comment for the same. However, while it is a noop on unix and windows, other platforms like motor, solid, etc seem to call normal file flush on it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know whether those platforms do anything special or it just wasn't caught during review.

CC @lasiotus @kawadakk in case the platforms need fixing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the ping!

Re: flushing a file on Motor OS: the story is a bit complicated: while at the moment the call is a noop, it won't be in the future, as Motor OS is moving towards a fully asynchronous I/O (at the moment file I/O is synchronous) with in-process async runtime, so flushing a file will not stay a noop. The good news is that the call is already plumbed through to Motor OS runtime, so no changes to Rust std are expected.

- Make flush a noop since it is only for buffered writers.
- Also forward fsync to datasync. UEFI does not have anything
  separate for metadata sync.

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
@the8472
Copy link
Member

the8472 commented Jan 10, 2026

@bors r+

@rust-bors rust-bors bot added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jan 10, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 10, 2026

📌 Commit f6f901f has been approved by the8472

It is now in the queue for this repository.

@rust-bors rust-bors bot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 10, 2026
Zalathar added a commit to Zalathar/rust that referenced this pull request Jan 10, 2026
std: sys: fs: uefi: Implement File::flush

- Also forward fsync and datasync to flush. UEFI does not have anything separate for metadata sync.

@rustbot label +O-UEFI
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Jan 10, 2026
std: sys: fs: uefi: Implement File::flush

- Also forward fsync and datasync to flush. UEFI does not have anything separate for metadata sync.

@rustbot label +O-UEFI
Zalathar added a commit to Zalathar/rust that referenced this pull request Jan 11, 2026
std: sys: fs: uefi: Implement File::flush

- Also forward fsync and datasync to flush. UEFI does not have anything separate for metadata sync.

@rustbot label +O-UEFI
Zalathar added a commit to Zalathar/rust that referenced this pull request Jan 11, 2026
std: sys: fs: uefi: Implement File::flush

- Also forward fsync and datasync to flush. UEFI does not have anything separate for metadata sync.

@rustbot label +O-UEFI
rust-bors bot added a commit that referenced this pull request Jan 11, 2026
Rollup of 14 pull requests

Successful merges:

 - #148941 (stabilize `Peekable::next_if_map` (`#![feature(peekable_next_if_map)]`))
 - #150368 (adding Ordering enum to minicore.rs, importing minicore in "tests/assembly-llvm/rust-abi-arg-attr.rs" test file)
 - #150668 (Unix implementation for stdio set/take/replace)
 - #150743 (Reword the collect() docs)
 - #150776 (Fix the connect_error test on FreeBSD 15+)
 - #150781 (Use `rand` crate more idiomatically)
 - #150786 (mGCA: Support array expression as direct const arguments)
 - #150812 (Bump `diesel` to the most recent commit in `cargotest`)
 - #150862 (std: sys: fs: uefi: Implement File::flush)
 - #150873 (Reenable GCC CI download)
 - #150908 (llvm: Update `reliable_f16` configuration for LLVM22)
 - #150918 (std: sys: fs: uefi: Implement File::seek)
 - #150922 (Subscribe myself to attr parsing)
 - #150930 (Remove special case for `AllowedTargets::CrateLevel`)

r? @ghost
rust-bors bot added a commit that referenced this pull request Jan 11, 2026
Rollup of 14 pull requests

Successful merges:

 - #148941 (stabilize `Peekable::next_if_map` (`#![feature(peekable_next_if_map)]`))
 - #150368 (adding Ordering enum to minicore.rs, importing minicore in "tests/assembly-llvm/rust-abi-arg-attr.rs" test file)
 - #150668 (Unix implementation for stdio set/take/replace)
 - #150743 (Reword the collect() docs)
 - #150776 (Fix the connect_error test on FreeBSD 15+)
 - #150781 (Use `rand` crate more idiomatically)
 - #150812 (Bump `diesel` to the most recent commit in `cargotest`)
 - #150862 (std: sys: fs: uefi: Implement File::flush)
 - #150873 (Reenable GCC CI download)
 - #150908 (llvm: Update `reliable_f16` configuration for LLVM22)
 - #150918 (std: sys: fs: uefi: Implement File::seek)
 - #150922 (Subscribe myself to attr parsing)
 - #150930 (Remove special case for `AllowedTargets::CrateLevel`)
 - #150942 (Port `#[rustc_has_incoherent_inherent_impls]` to attribute parser)

Failed merges:

 - #150943 (Port `#[must_not_suspend]` to attribute parser)

r? @ghost
@rust-bors rust-bors bot merged commit 98270a9 into rust-lang:main Jan 11, 2026
11 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Jan 11, 2026
rust-timer added a commit that referenced this pull request Jan 11, 2026
Rollup merge of #150862 - uefi-fs-flush, r=the8472

std: sys: fs: uefi: Implement File::flush

- Also forward fsync and datasync to flush. UEFI does not have anything separate for metadata sync.

@rustbot label +O-UEFI
@Ayush1325 Ayush1325 deleted the uefi-fs-flush branch January 11, 2026 16:34
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Jan 12, 2026
Rollup of 14 pull requests

Successful merges:

 - rust-lang/rust#148941 (stabilize `Peekable::next_if_map` (`#![feature(peekable_next_if_map)]`))
 - rust-lang/rust#150368 (adding Ordering enum to minicore.rs, importing minicore in "tests/assembly-llvm/rust-abi-arg-attr.rs" test file)
 - rust-lang/rust#150668 (Unix implementation for stdio set/take/replace)
 - rust-lang/rust#150743 (Reword the collect() docs)
 - rust-lang/rust#150776 (Fix the connect_error test on FreeBSD 15+)
 - rust-lang/rust#150781 (Use `rand` crate more idiomatically)
 - rust-lang/rust#150812 (Bump `diesel` to the most recent commit in `cargotest`)
 - rust-lang/rust#150862 (std: sys: fs: uefi: Implement File::flush)
 - rust-lang/rust#150873 (Reenable GCC CI download)
 - rust-lang/rust#150908 (llvm: Update `reliable_f16` configuration for LLVM22)
 - rust-lang/rust#150918 (std: sys: fs: uefi: Implement File::seek)
 - rust-lang/rust#150922 (Subscribe myself to attr parsing)
 - rust-lang/rust#150930 (Remove special case for `AllowedTargets::CrateLevel`)
 - rust-lang/rust#150942 (Port `#[rustc_has_incoherent_inherent_impls]` to attribute parser)

Failed merges:

 - rust-lang/rust#150943 (Port `#[must_not_suspend]` to attribute parser)

r? @ghost
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

O-UEFI UEFI S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants