Xin chào Tôi là một newbie để lập trình hạt nhân. Tôi đang viết một mô-đun hạt nhân nhỏ dựa trên mẫu wrapfs để triển khai cơ chế dự phòng. Đây là hoàn toàn là cơ sở học tập.lưu trữ một số dữ liệu trong cấu trúc inode
Tôi đang mở rộng wrapfs để khi cuộc gọi viết được thực hiện wrapfs rõ ràng sao chép tệp đó trong một thư mục riêng và sau đó viết được thực hiện trên tệp. Nhưng tôi không muốn tôi tạo một bản sao cho mọi cuộc gọi viết.
Cách tiếp cận ngây thơ có thể là tôi kiểm tra sự tồn tại của tệp trong thư mục đó. Nhưng Tôi nghĩ rằng đối với mỗi cuộc gọi, việc kiểm tra này có thể là một hình phạt nghiêm trọng.
Tôi cũng có thể kiểm tra cuộc gọi viết đầu tiên và sau đó lưu trữ giá trị cho tệp cụ thể đó bằng thuộc tính private_data. Nhưng điều đó sẽ không được lưu trữ trên đĩa . Vì vậy, tôi sẽ cần phải kiểm tra lại.
Tôi cũng đang nghĩ đến việc sử dụng thời gian sửa đổi. Tôi có thể tiết kiệm thời gian sửa đổi . Nếu thời gian sửa đổi cũ hơn trước thời điểm đó thì chỉ một bản sao được tạo ra nếu không tôi sẽ không làm gì cả. Tôi đã cố gắng sử dụng inode.i_mtime cho điều này nhưng nó đã được sửa đổi thời gian ngay cả trước khi viết được gọi là, cũng ứng dụng có thể sửa đổi thời gian đó.
Vì vậy, tôi đã nghĩ đến việc lưu trữ một số giá trị inode trên đĩa cho biết bản sao lưu của nó đã được tạo hay chưa. Điều đó có thể không? Bất kỳ đề xuất nào khác hoặc cách tiếp cận đều được hoan nghênh.
Định dạng blob của bạn sẽ giúp bạn nhận được câu hỏi ngay cả _read_. – sehe