Rename struct kernel_dirent::d_off to d_nextoff.

The d_off field exists on other operating systems and the kernel used the
field in an incompatible manner. The easy solution is to call the field
something else and later address the design mistake.
This commit is contained in:
Jonas 'Sortie' Termansen 2014-01-03 23:21:43 +01:00
parent da933464e5
commit 1e671aa8cd
5 changed files with 7 additions and 7 deletions

View File

@ -462,7 +462,7 @@ void HandleReadDir(int svr, int chl, struct fsm_req_readdirents* msg, Filesystem
if ( entry->inode && entry->name_len && !(msg->rec_num--) )
{
kernel_entry.d_reclen = sizeof(kernel_entry) + entry->name_len;
kernel_entry.d_off = 0;
kernel_entry.d_nextoff = 0;
kernel_entry.d_ino = entry->inode;
kernel_entry.d_dev = 0;
kernel_entry.d_type = 0; // TODO: Support this!

View File

@ -322,7 +322,7 @@ ssize_t Descriptor::readdirents(ioctx_t* ctx, struct kernel_dirent* dirent,
struct kernel_dirent retdirent;
memset(&retdirent, 0, sizeof(retdirent));
retdirent.d_reclen = needed;
retdirent.d_off = 0;
retdirent.d_nextoff = 0;
retdirent.d_namlen = namelen;
if ( !ctx->copy_to_dest(dirent, &retdirent, sizeof(retdirent)) )
return -1;

View File

@ -157,7 +157,7 @@ ssize_t Dir::readdirents(ioctx_t* ctx, struct kernel_dirent* dirent,
Ref<Inode> inode = children[start].inode;
ret = needed;
retdirent.d_reclen = needed;
retdirent.d_off = 0;
retdirent.d_nextoff = 0;
retdirent.d_namlen = namelen;
retdirent.d_ino = inode->ino;
retdirent.d_dev = inode->dev;

View File

@ -920,7 +920,7 @@ ssize_t Unode::readdirents(ioctx_t* ctx, struct kernel_dirent* dirent,
struct kernel_dirent entry;
entry.d_reclen = sizeof(entry) + resp.namelen + 1;
entry.d_off = 0;
entry.d_nextoff = 0;
entry.d_namlen = resp.namelen;
entry.d_dev = (dev_t) server;
entry.d_ino = resp.ino;

View File

@ -72,7 +72,7 @@ typedef __ino_t ino_t;
struct kernel_dirent
{
size_t d_reclen;
size_t d_off;
size_t d_nextoff;
size_t d_namlen;
ino_t d_ino;
dev_t d_dev;
@ -82,9 +82,9 @@ struct kernel_dirent
static inline struct kernel_dirent* kernel_dirent_next(struct kernel_dirent* ent)
{
if ( !ent->d_off )
if ( !ent->d_nextoff )
return NULL;
return (struct kernel_dirent*) ((uint8_t*) ent + ent->d_off);
return (struct kernel_dirent*) ((uint8_t*) ent + ent->d_nextoff);
}
__END_DECLS