* Added a acquire_unreferenced_ref() to vm_store
* his has to be used by the page writer to make sure the vnode is still valid. * This should have been the final nail on the Luposian bug - I haven't tested it yet, but we'll certainly see :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22462 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -219,19 +219,20 @@ struct vm_store {
|
||||
};
|
||||
|
||||
typedef struct vm_store_ops {
|
||||
void (*destroy)(struct vm_store *backing_store);
|
||||
status_t (*commit)(struct vm_store *backing_store, off_t size);
|
||||
bool (*has_page)(struct vm_store *backing_store, off_t offset);
|
||||
status_t (*read)(struct vm_store *backing_store, off_t offset,
|
||||
void (*destroy)(struct vm_store *backingStore);
|
||||
status_t (*commit)(struct vm_store *backingStore, off_t size);
|
||||
bool (*has_page)(struct vm_store *backingStore, off_t offset);
|
||||
status_t (*read)(struct vm_store *backingStore, off_t offset,
|
||||
const iovec *vecs, size_t count, size_t *_numBytes, bool mayBlock,
|
||||
bool fsReenter);
|
||||
status_t (*write)(struct vm_store *backing_store, off_t offset,
|
||||
status_t (*write)(struct vm_store *backingStore, off_t offset,
|
||||
const iovec *vecs, size_t count, size_t *_numBytes, bool mayBlock,
|
||||
bool fsReenter);
|
||||
status_t (*fault)(struct vm_store *backing_store,
|
||||
status_t (*fault)(struct vm_store *backingStore,
|
||||
struct vm_address_space *aspace, off_t offset);
|
||||
void (*acquire_ref)(struct vm_store *backing_store);
|
||||
void (*release_ref)(struct vm_store *backing_store);
|
||||
status_t (*acquire_unreferenced_ref)(struct vm_store *backingStore);
|
||||
void (*acquire_ref)(struct vm_store *backingStore);
|
||||
void (*release_ref)(struct vm_store *backingStore);
|
||||
} vm_store_ops;
|
||||
|
||||
#endif /* _KERNEL_VM_TYPES_H */
|
||||
|
||||
Reference in New Issue
Block a user