Commit 9805e1fe authored by David S. Miller's avatar David S. Miller

[SPARC64]: Provide d_type in sys32_getdents().

parent db80df6e
...@@ -1089,7 +1089,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i ...@@ -1089,7 +1089,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i
{ {
struct linux_dirent32 * dirent; struct linux_dirent32 * dirent;
struct getdents_callback32 * buf = (struct getdents_callback32 *) __buf; struct getdents_callback32 * buf = (struct getdents_callback32 *) __buf;
int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 1); int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 2);
buf->error = -EINVAL; /* only used if we fail.. */ buf->error = -EINVAL; /* only used if we fail.. */
if (reclen > buf->count) if (reclen > buf->count)
...@@ -1103,6 +1103,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i ...@@ -1103,6 +1103,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i
put_user(reclen, &dirent->d_reclen); put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen); copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen); put_user(0, dirent->d_name + namlen);
put_user(d_type, (char *) dirent + reclen - 1);
((char *) dirent) += reclen; ((char *) dirent) += reclen;
buf->current_dir = dirent; buf->current_dir = dirent;
buf->count -= reclen; buf->count -= reclen;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment