Lines Matching refs:stat
21 void generic_fillattr(struct inode *inode, struct kstat *stat) in generic_fillattr() argument
23 stat->dev = inode->i_sb->s_dev; in generic_fillattr()
24 stat->ino = inode->i_ino; in generic_fillattr()
25 stat->mode = inode->i_mode; in generic_fillattr()
26 stat->nlink = inode->i_nlink; in generic_fillattr()
27 stat->uid = inode->i_uid; in generic_fillattr()
28 stat->gid = inode->i_gid; in generic_fillattr()
29 stat->rdev = inode->i_rdev; in generic_fillattr()
30 stat->atime = inode->i_atime; in generic_fillattr()
31 stat->mtime = inode->i_mtime; in generic_fillattr()
32 stat->ctime = inode->i_ctime; in generic_fillattr()
33 stat->size = i_size_read(inode); in generic_fillattr()
34 stat->blocks = inode->i_blocks; in generic_fillattr()
35 stat->blksize = (1 << inode->i_blkbits); in generic_fillattr()
40 int vfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) in vfs_getattr() argument
50 return inode->i_op->getattr(mnt, dentry, stat); in vfs_getattr()
52 generic_fillattr(inode, stat); in vfs_getattr()
58 int vfs_stat_fd(int dfd, char __user *name, struct kstat *stat) in vfs_stat_fd() argument
65 error = vfs_getattr(path.mnt, path.dentry, stat); in vfs_stat_fd()
71 int vfs_stat(char __user *name, struct kstat *stat) in vfs_stat() argument
73 return vfs_stat_fd(AT_FDCWD, name, stat); in vfs_stat()
78 int vfs_lstat_fd(int dfd, char __user *name, struct kstat *stat) in vfs_lstat_fd() argument
85 error = vfs_getattr(path.mnt, path.dentry, stat); in vfs_lstat_fd()
91 int vfs_lstat(char __user *name, struct kstat *stat) in vfs_lstat() argument
93 return vfs_lstat_fd(AT_FDCWD, name, stat); in vfs_lstat()
98 int vfs_fstat(unsigned int fd, struct kstat *stat) in vfs_fstat() argument
104 error = vfs_getattr(f->f_path.mnt, f->f_path.dentry, stat); in vfs_fstat()
118 static int cp_old_stat(struct kstat *stat, struct __old_kernel_stat __user * statbuf) in cp_old_stat() argument
133 tmp.st_dev = old_encode_dev(stat->dev); in cp_old_stat()
134 tmp.st_ino = stat->ino; in cp_old_stat()
135 if (sizeof(tmp.st_ino) < sizeof(stat->ino) && tmp.st_ino != stat->ino) in cp_old_stat()
137 tmp.st_mode = stat->mode; in cp_old_stat()
138 tmp.st_nlink = stat->nlink; in cp_old_stat()
139 if (tmp.st_nlink != stat->nlink) in cp_old_stat()
141 SET_UID(tmp.st_uid, stat->uid); in cp_old_stat()
142 SET_GID(tmp.st_gid, stat->gid); in cp_old_stat()
143 tmp.st_rdev = old_encode_dev(stat->rdev); in cp_old_stat()
145 if (stat->size > MAX_NON_LFS) in cp_old_stat()
148 tmp.st_size = stat->size; in cp_old_stat()
149 tmp.st_atime = stat->atime.tv_sec; in cp_old_stat()
150 tmp.st_mtime = stat->mtime.tv_sec; in cp_old_stat()
151 tmp.st_ctime = stat->ctime.tv_sec; in cp_old_stat()
155 SYSCALL_DEFINE2(stat, char __user *, filename, struct __old_kernel_stat __user *, statbuf) in SYSCALL_DEFINE2() argument
157 struct kstat stat; in SYSCALL_DEFINE2() local
158 int error = vfs_stat_fd(AT_FDCWD, filename, &stat); in SYSCALL_DEFINE2()
161 error = cp_old_stat(&stat, statbuf); in SYSCALL_DEFINE2()
168 struct kstat stat; in SYSCALL_DEFINE2() local
169 int error = vfs_lstat_fd(AT_FDCWD, filename, &stat); in SYSCALL_DEFINE2()
172 error = cp_old_stat(&stat, statbuf); in SYSCALL_DEFINE2()
179 struct kstat stat; in SYSCALL_DEFINE2() local
180 int error = vfs_fstat(fd, &stat); in SYSCALL_DEFINE2()
183 error = cp_old_stat(&stat, statbuf); in SYSCALL_DEFINE2()
190 static int cp_new_stat(struct kstat *stat, struct stat __user *statbuf) in cp_new_stat() argument
192 struct stat tmp; in cp_new_stat()
195 if (!old_valid_dev(stat->dev) || !old_valid_dev(stat->rdev)) in cp_new_stat()
198 if (!new_valid_dev(stat->dev) || !new_valid_dev(stat->rdev)) in cp_new_stat()
204 tmp.st_dev = old_encode_dev(stat->dev); in cp_new_stat()
206 tmp.st_dev = new_encode_dev(stat->dev); in cp_new_stat()
208 tmp.st_ino = stat->ino; in cp_new_stat()
209 if (sizeof(tmp.st_ino) < sizeof(stat->ino) && tmp.st_ino != stat->ino) in cp_new_stat()
211 tmp.st_mode = stat->mode; in cp_new_stat()
212 tmp.st_nlink = stat->nlink; in cp_new_stat()
213 if (tmp.st_nlink != stat->nlink) in cp_new_stat()
215 SET_UID(tmp.st_uid, stat->uid); in cp_new_stat()
216 SET_GID(tmp.st_gid, stat->gid); in cp_new_stat()
218 tmp.st_rdev = old_encode_dev(stat->rdev); in cp_new_stat()
220 tmp.st_rdev = new_encode_dev(stat->rdev); in cp_new_stat()
223 if (stat->size > MAX_NON_LFS) in cp_new_stat()
226 tmp.st_size = stat->size; in cp_new_stat()
227 tmp.st_atime = stat->atime.tv_sec; in cp_new_stat()
228 tmp.st_mtime = stat->mtime.tv_sec; in cp_new_stat()
229 tmp.st_ctime = stat->ctime.tv_sec; in cp_new_stat()
231 tmp.st_atime_nsec = stat->atime.tv_nsec; in cp_new_stat()
232 tmp.st_mtime_nsec = stat->mtime.tv_nsec; in cp_new_stat()
233 tmp.st_ctime_nsec = stat->ctime.tv_nsec; in cp_new_stat()
235 tmp.st_blocks = stat->blocks; in cp_new_stat()
236 tmp.st_blksize = stat->blksize; in cp_new_stat()
240 SYSCALL_DEFINE2(newstat, char __user *, filename, struct stat __user *, statbuf) in SYSCALL_DEFINE2()
242 struct kstat stat; in SYSCALL_DEFINE2() local
243 int error = vfs_stat_fd(AT_FDCWD, filename, &stat); in SYSCALL_DEFINE2()
246 error = cp_new_stat(&stat, statbuf); in SYSCALL_DEFINE2()
251 SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf) in SYSCALL_DEFINE2()
253 struct kstat stat; in SYSCALL_DEFINE2() local
254 int error = vfs_lstat_fd(AT_FDCWD, filename, &stat); in SYSCALL_DEFINE2()
257 error = cp_new_stat(&stat, statbuf); in SYSCALL_DEFINE2()
264 struct stat __user *, statbuf, int, flag) in SYSCALL_DEFINE4()
266 struct kstat stat; in SYSCALL_DEFINE4() local
273 error = vfs_lstat_fd(dfd, filename, &stat); in SYSCALL_DEFINE4()
275 error = vfs_stat_fd(dfd, filename, &stat); in SYSCALL_DEFINE4()
278 error = cp_new_stat(&stat, statbuf); in SYSCALL_DEFINE4()
285 SYSCALL_DEFINE2(newfstat, unsigned int, fd, struct stat __user *, statbuf) in SYSCALL_DEFINE2()
287 struct kstat stat; in SYSCALL_DEFINE2() local
288 int error = vfs_fstat(fd, &stat); in SYSCALL_DEFINE2()
291 error = cp_new_stat(&stat, statbuf); in SYSCALL_DEFINE2()
333 static long cp_new_stat64(struct kstat *stat, struct stat64 __user *statbuf) in cp_new_stat64() argument
340 if (!new_valid_dev(stat->dev) || !new_valid_dev(stat->rdev)) in cp_new_stat64()
342 tmp.st_dev = new_encode_dev(stat->dev); in cp_new_stat64()
343 tmp.st_rdev = new_encode_dev(stat->rdev); in cp_new_stat64()
345 tmp.st_dev = huge_encode_dev(stat->dev); in cp_new_stat64()
346 tmp.st_rdev = huge_encode_dev(stat->rdev); in cp_new_stat64()
348 tmp.st_ino = stat->ino; in cp_new_stat64()
349 if (sizeof(tmp.st_ino) < sizeof(stat->ino) && tmp.st_ino != stat->ino) in cp_new_stat64()
352 tmp.__st_ino = stat->ino; in cp_new_stat64()
354 tmp.st_mode = stat->mode; in cp_new_stat64()
355 tmp.st_nlink = stat->nlink; in cp_new_stat64()
356 tmp.st_uid = stat->uid; in cp_new_stat64()
357 tmp.st_gid = stat->gid; in cp_new_stat64()
358 tmp.st_atime = stat->atime.tv_sec; in cp_new_stat64()
359 tmp.st_atime_nsec = stat->atime.tv_nsec; in cp_new_stat64()
360 tmp.st_mtime = stat->mtime.tv_sec; in cp_new_stat64()
361 tmp.st_mtime_nsec = stat->mtime.tv_nsec; in cp_new_stat64()
362 tmp.st_ctime = stat->ctime.tv_sec; in cp_new_stat64()
363 tmp.st_ctime_nsec = stat->ctime.tv_nsec; in cp_new_stat64()
364 tmp.st_size = stat->size; in cp_new_stat64()
365 tmp.st_blocks = stat->blocks; in cp_new_stat64()
366 tmp.st_blksize = stat->blksize; in cp_new_stat64()
372 struct kstat stat; in SYSCALL_DEFINE2() local
373 int error = vfs_stat(filename, &stat); in SYSCALL_DEFINE2()
376 error = cp_new_stat64(&stat, statbuf); in SYSCALL_DEFINE2()
383 struct kstat stat; in SYSCALL_DEFINE2() local
384 int error = vfs_lstat(filename, &stat); in SYSCALL_DEFINE2()
387 error = cp_new_stat64(&stat, statbuf); in SYSCALL_DEFINE2()
394 struct kstat stat; in SYSCALL_DEFINE2() local
395 int error = vfs_fstat(fd, &stat); in SYSCALL_DEFINE2()
398 error = cp_new_stat64(&stat, statbuf); in SYSCALL_DEFINE2()
406 struct kstat stat; in SYSCALL_DEFINE4() local
413 error = vfs_lstat_fd(dfd, filename, &stat); in SYSCALL_DEFINE4()
415 error = vfs_stat_fd(dfd, filename, &stat); in SYSCALL_DEFINE4()
418 error = cp_new_stat64(&stat, statbuf); in SYSCALL_DEFINE4()