75 |
|
|
76 |
struct disknode *dn; |
struct disknode *dn; |
77 |
|
|
78 |
struct stat dn_stat; |
io_statbuf_t dn_stat; |
79 |
|
|
80 |
/* Stat has been modified if one of the following four fields |
/* Stat has been modified if one of the following four fields |
81 |
is nonzero. Also, if one of the dn_set_?time fields is nonzero, |
is nonzero. Also, if one of the dn_set_?time fields is nonzero, |
104 |
|
|
105 |
struct modreq *filemod_reqs; |
struct modreq *filemod_reqs; |
106 |
|
|
107 |
off_t allocsize; |
loff_t allocsize; |
108 |
|
|
109 |
int cache_id; |
ino64_t cache_id; |
110 |
|
|
111 |
int author_tracks_uid; |
int author_tracks_uid; |
112 |
}; |
}; |
399 |
long, do nothing.) If this is a symlink (and diskfs_shortcut_symlink |
long, do nothing.) If this is a symlink (and diskfs_shortcut_symlink |
400 |
is set) then this should clear the symlink, even if |
is set) then this should clear the symlink, even if |
401 |
diskfs_create_symlink_hook stores the link target elsewhere. */ |
diskfs_create_symlink_hook stores the link target elsewhere. */ |
402 |
error_t diskfs_truncate (struct node *np, off_t size); |
error_t diskfs_truncate (struct node *np, loff_t size); |
403 |
|
|
404 |
/* The user must define this function. Grow the disk allocated to locked node |
/* The user must define this function. Grow the disk allocated to locked node |
405 |
NP to be at least SIZE bytes, and set NP->allocsize to the actual |
NP to be at least SIZE bytes, and set NP->allocsize to the actual |
406 |
allocated size. (If the allocated size is already SIZE bytes, do |
allocated size. (If the allocated size is already SIZE bytes, do |
407 |
nothing.) CRED identifies the user responsible for the call. */ |
nothing.) CRED identifies the user responsible for the call. */ |
408 |
error_t diskfs_grow (struct node *np, off_t size, struct protid *cred); |
error_t diskfs_grow (struct node *np, loff_t size, struct protid *cred); |
409 |
|
|
410 |
/* The user must define this function. Write to disk (synchronously |
/* The user must define this function. Write to disk (synchronously |
411 |
iff WAIT is nonzero) from format-specific buffers any non-paged |
iff WAIT is nonzero) from format-specific buffers any non-paged |
631 |
extension). For reads, *AMTREAD is filled with the amount actually |
extension). For reads, *AMTREAD is filled with the amount actually |
632 |
read. */ |
read. */ |
633 |
error_t |
error_t |
634 |
diskfs_node_rdwr (struct node *np, char *data, off_t off, |
diskfs_node_rdwr (struct node *np, char *data, loff_t off, |
635 |
size_t amt, int dir, struct protid *cred, |
size_t amt, int dir, struct protid *cred, |
636 |
size_t *amtread); |
size_t *amtread); |
637 |
|
|
652 |
This should be called after the change is fully completed. */ |
This should be called after the change is fully completed. */ |
653 |
void |
void |
654 |
diskfs_notice_filechange (struct node *np, enum file_changed_type type, |
diskfs_notice_filechange (struct node *np, enum file_changed_type type, |
655 |
off_t start, off_t end); |
loff_t start, loff_t end); |
656 |
|
|
657 |
/* Create a new node structure with DS as its physical disknode. |
/* Create a new node structure with DS as its physical disknode. |
658 |
The new node will have one hard reference and no light references. */ |
The new node will have one hard reference and no light references. */ |
750 |
const char *name, struct dirstat *ds); |
const char *name, struct dirstat *ds); |
751 |
|
|
752 |
/* Return the node corresponding to CACHE_ID in *NPP. */ |
/* Return the node corresponding to CACHE_ID in *NPP. */ |
753 |
error_t diskfs_cached_lookup (int cache_id, struct node **npp); |
error_t diskfs_cached_lookup (ino64_t cache_id, struct node **npp); |
754 |
|
|
755 |
/* Create a new node. Give it MODE; if that includes IFDIR, also |
/* Create a new node. Give it MODE; if that includes IFDIR, also |
756 |
initialize `.' and `..' in the new directory. Return the node in NPP. |
initialize `.' and `..' in the new directory. Return the node in NPP. |