diff options
Diffstat (limited to 'fs/readdir.c')
| -rw-r--r-- | fs/readdir.c | 21 | 
1 files changed, 12 insertions, 9 deletions
diff --git a/fs/readdir.c b/fs/readdir.c index 33fd92208cb7..ced679179cac 100644 --- a/fs/readdir.c +++ b/fs/readdir.c @@ -74,10 +74,11 @@ struct readdir_callback {  	int result;  }; -static int fillonedir(void * __buf, const char * name, int namlen, loff_t offset, -		      u64 ino, unsigned int d_type) +static int fillonedir(struct dir_context *ctx, const char *name, int namlen, +		      loff_t offset, u64 ino, unsigned int d_type)  { -	struct readdir_callback *buf = (struct readdir_callback *) __buf; +	struct readdir_callback *buf = +		container_of(ctx, struct readdir_callback, ctx);  	struct old_linux_dirent __user * dirent;  	unsigned long d_ino; @@ -148,11 +149,12 @@ struct getdents_callback {  	int error;  }; -static int filldir(void * __buf, const char * name, int namlen, loff_t offset, -		   u64 ino, unsigned int d_type) +static int filldir(struct dir_context *ctx, const char *name, int namlen, +		   loff_t offset, u64 ino, unsigned int d_type)  {  	struct linux_dirent __user * dirent; -	struct getdents_callback * buf = (struct getdents_callback *) __buf; +	struct getdents_callback *buf = +		container_of(ctx, struct getdents_callback, ctx);  	unsigned long d_ino;  	int reclen = ALIGN(offsetof(struct linux_dirent, d_name) + namlen + 2,  		sizeof(long)); @@ -232,11 +234,12 @@ struct getdents_callback64 {  	int error;  }; -static int filldir64(void * __buf, const char * name, int namlen, loff_t offset, -		     u64 ino, unsigned int d_type) +static int filldir64(struct dir_context *ctx, const char *name, int namlen, +		     loff_t offset, u64 ino, unsigned int d_type)  {  	struct linux_dirent64 __user *dirent; -	struct getdents_callback64 * buf = (struct getdents_callback64 *) __buf; +	struct getdents_callback64 *buf = +		container_of(ctx, struct getdents_callback64, ctx);  	int reclen = ALIGN(offsetof(struct linux_dirent64, d_name) + namlen + 1,  		sizeof(u64));  |