Có cuộc gọi umount đồng bộ hóa để hoàn thành bất kỳ ghi đang chờ xử lý


8

Chúng tôi có bảng tùy chỉnh dựa trên BBB với kernel 3.12 đang chạy trên nó.

Tôi có nghi ngờ về umount và & đồng bộ.

Hãy nói rằng một tập lệnh đang vượt qua một phân vùng, Nó có yêu cầu chạy synclệnh trước umountđể hoàn thành việc ghi chờ xử lý không. ?

Câu trả lời:


12

Không, bạn không cần phải chạy synctrước umount. umountsẽ hoàn thành tất cả các ghi đang chờ xử lý trước khi nó thực sự ngắt kết nối hệ thống tập tin. Nó cũng sẽ từ chối ngắt kết nối nếu một số tiến trình vẫn đang sử dụng hệ thống tập tin, ví dụ như thư mục làm việc hiện tại.

Chỉnh sửa : Unmounting chủ yếu được xử lý trong fs/namespace.c. Bạn sẽ không tìm thấy bất kỳ cuộc gọi rõ ràng nào syncở đó, nhưng bạn sẽ thấy các bình luận dọc theo dòng chữ "đánh dấu điểm gắn kết này để hủy kết nối, từ chối mọi thao tác tiếp theo trên đó và nếu tất cả các hoạt động được thực hiện, hãy ngắt kết nối". Bạn cũng có thể thấy kiểm tra sử dụng rõ ràng.

Bạn có thể dễ dàng tự kiểm tra xem có umountthực sự hoàn thành tất cả các hoạt động đang chờ xử lý không: Gắn một số thanh USB chậm, sao chép một tệp lớn vào đó và gọi trực tiếp umountsau cp. Sẽ mất vài giây trước khi bạn thấy một dấu nhắc mới và nếu bạn chạy, dstatvv trong một cửa sổ khác, bạn sẽ thấy các thao tác ghi vẫn đang diễn ra. Đó chính xác là hành vi giống như bạn đã gõ sync.


Cảm ơn bạn đã trả lời dirkt, Bạn có biết đường dẫn mã trong kernel không?
NGHỆ THUẬT

6
Nó không thể là cách nào khác. Nếu bạn phải syncsau đó, bạn sẽ phải chặn các quy trình viết trước, nếu không, nó có thể không được chỉnh sửa syncvào thời điểm bạn đến unmount(một điều kiện cuộc đua).
ctrl-alt-delor

1
umount -lsẽ để lệnh hoàn thành nếu một cái gì đó vẫn đang sử dụng hệ thống tập tin và chờ trong nền để quá trình kết thúc, sau đó lặng lẽ ngắt kết nối nó.
Mio Rin

Chính xác. Ngay cả trường hợp ngắt kết nối khẩn cấp (Alt + SysRq + U) cũng đi qua đường dẫn này đồng bộ hóa trước.
Gilles 'SO- ngừng trở nên xấu xa'

1
Giải thích của tôi nói rằng trên thực tế, một đồng bộ hóa sẽ khắc phục những gì bạn đang lo lắng. Tuy nhiên, bài viết xuất hiện sau khi đồng bộ hóa sẽ gây ra tham nhũng (nếu nó hoạt động theo cách này), do đó, một hệ thống cần đồng bộ hóa trước khi kết thúc, về cơ bản sẽ bị phá vỡ. Vì Gnu / Linux về cơ bản không bị phá vỡ, nó không thể theo cách này. Do đó, bạn không cần phải đồng bộ hóa. Nếu bạn phải thực hiện đồng bộ hóa thì trước tiên bạn sẽ phải sắp xếp để chặn tất cả ghi vào thiết bị (trước khi đồng bộ hóa).
ctrl-alt-delor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.