14dde37f7SAntonio Huete Jimenez /*
24dde37f7SAntonio Huete Jimenez * Copyright (c) 2013 The DragonFly Project. All rights reserved.
34dde37f7SAntonio Huete Jimenez *
44dde37f7SAntonio Huete Jimenez * Redistribution and use in source and binary forms, with or without
54dde37f7SAntonio Huete Jimenez * modification, are permitted provided that the following conditions
64dde37f7SAntonio Huete Jimenez * are met:
74dde37f7SAntonio Huete Jimenez *
84dde37f7SAntonio Huete Jimenez * 1. Redistributions of source code must retain the above copyright
94dde37f7SAntonio Huete Jimenez * notice, this list of conditions and the following disclaimer.
104dde37f7SAntonio Huete Jimenez * 2. Redistributions in binary form must reproduce the above copyright
114dde37f7SAntonio Huete Jimenez * notice, this list of conditions and the following disclaimer in
124dde37f7SAntonio Huete Jimenez * the documentation and/or other materials provided with the
134dde37f7SAntonio Huete Jimenez * distribution.
144dde37f7SAntonio Huete Jimenez * 3. Neither the name of The DragonFly Project nor the names of its
154dde37f7SAntonio Huete Jimenez * contributors may be used to endorse or promote products derived
164dde37f7SAntonio Huete Jimenez * from this software without specific, prior written permission.
174dde37f7SAntonio Huete Jimenez *
184dde37f7SAntonio Huete Jimenez * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
194dde37f7SAntonio Huete Jimenez * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
204dde37f7SAntonio Huete Jimenez * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
214dde37f7SAntonio Huete Jimenez * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
224dde37f7SAntonio Huete Jimenez * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
234dde37f7SAntonio Huete Jimenez * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
244dde37f7SAntonio Huete Jimenez * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
254dde37f7SAntonio Huete Jimenez * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
264dde37f7SAntonio Huete Jimenez * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
274dde37f7SAntonio Huete Jimenez * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
284dde37f7SAntonio Huete Jimenez * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
294dde37f7SAntonio Huete Jimenez * SUCH DAMAGE.
304dde37f7SAntonio Huete Jimenez */
314dde37f7SAntonio Huete Jimenez
324dde37f7SAntonio Huete Jimenez #define _KERNEL_STRUCTURES
334dde37f7SAntonio Huete Jimenez #include <sys/vnode.h>
344dde37f7SAntonio Huete Jimenez #include <sys/mount.h>
35*fcfd9e22STomohiro Kusumi #include <vfs/ext2fs/inode.h>
36*fcfd9e22STomohiro Kusumi #define VTOI(vp) ((struct inode *)(vp)->v_data)
374dde37f7SAntonio Huete Jimenez #undef _KERNEL_STRUCTURES
384dde37f7SAntonio Huete Jimenez
394dde37f7SAntonio Huete Jimenez #include <stdio.h>
404dde37f7SAntonio Huete Jimenez #include <kvm.h>
414dde37f7SAntonio Huete Jimenez
424dde37f7SAntonio Huete Jimenez #include "fstat.h"
434dde37f7SAntonio Huete Jimenez
444dde37f7SAntonio Huete Jimenez int
ext2fs_filestat(struct vnode * vp,struct filestat * fsp)45ed63e0ebSSascha Wildner ext2fs_filestat(struct vnode *vp, struct filestat *fsp)
464dde37f7SAntonio Huete Jimenez {
474dde37f7SAntonio Huete Jimenez struct inode ino;
484dde37f7SAntonio Huete Jimenez
494dde37f7SAntonio Huete Jimenez if (!kread(VTOI(vp), &ino, sizeof(ino))) {
504dde37f7SAntonio Huete Jimenez dprintf(stderr, "can't read inode at %p for pid %d\n",
514dde37f7SAntonio Huete Jimenez (void *)VTOI(vp), Pid);
524dde37f7SAntonio Huete Jimenez return 0;
534dde37f7SAntonio Huete Jimenez }
543909f163SSascha Wildner fsp->mode = ino.i_mode | mtrans(vp->v_type);
55a9871e48Szrj fsp->rdev = fsp->fsid = fstat_dev2udev(ino.i_dev);
56*fcfd9e22STomohiro Kusumi fsp->size = ino.i_size;
574dde37f7SAntonio Huete Jimenez fsp->fileid = ino.i_number;
584dde37f7SAntonio Huete Jimenez
594dde37f7SAntonio Huete Jimenez return 1;
604dde37f7SAntonio Huete Jimenez }
61