Messages in this thread | | | Date | Thu, 15 Jun 2006 02:46:06 -0600 | From | "Brian F. G. Bidulock" <> | Subject | Re: [RFC] Slimming down struct inode |
| |
Nathan,
On Thu, 15 Jun 2006, Nathan Scott wrote: > > There is no IRIX/Linux compatibility layer, you're misunderstanding > the code (which is understandable, its erm a bit crufty in places).
You gotta be kidding. It does everything in terms of an SVR 4 VFS vnode and then converts that to Linux VFS on dentries/inodes. It was obviously built by stuffing the Linux VFS under SVR 4 VFS code and even documents the code as such. Things like:
| /* | * XFS arguments structure, constructed from the arguments we | * are passed via the mount system call. | * | * NOTE: The mount system call is handled differently between | * Linux and IRIX. In IRIX we worked work with a binary data | * structure coming in across the syscall interface from user | * space (the mount userspace knows about each filesystem type | * and the set of valid options for it, and converts the users | * argument string into a binary structure _before_ making the | * system call), and the ABI issues that this implies. | * | * In Linux, we are passed a comma separated set of options; | * ie. a NULL terminated string of characters. Userspace mount | * code does not have any knowledge of mount options expected by | * each filesystem type and so each filesystem parses its mount | * options in kernel space. | * | * For the Linux port, we kept this structure pretty much intact | * and use it internally (because the existing code groks it). | */ | struct xfs_mount_args { | int flags; /* flags -> see XFSMNT_... macros below */ | int flags2; /* flags -> see XFSMNT2_... macros below */ | int logbufs; /* Number of log buffers, -1 to default */ | int logbufsize; /* Size of log buffers, -1 to default */ | char fsname[MAXNAMELEN+1]; /* data device name */ | char rtname[MAXNAMELEN+1]; /* realtime device filename */ | char logname[MAXNAMELEN+1]; /* journal device filename */ | char mtpt[MAXNAMELEN+1]; /* filesystem mount point */ | int sunit; /* stripe unit (BBs) */ | int swidth; /* stripe width (BBs), multiple of sunit */ | uchar_t iosizelog; /* log2 of the preferred I/O size */ | int ihashsize; /* inode hash table size (buckets) */ | };
No... No compatibility layer there.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |