Deleted Added
sdiff udiff text old ( 164855 ) new ( 166340 )
full compact
1/* $FreeBSD: head/sys/fs/msdosfs/msdosfs_vnops.c 164855 2006-12-03 19:04:26Z maxim $ */
2/* $NetBSD: msdosfs_vnops.c,v 1.68 1998/02/10 14:10:04 mrg Exp $ */
3
4/*-
5 * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
6 * Copyright (C) 1994, 1995, 1997 TooLs GmbH.
7 * All rights reserved.
8 * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below).
9 *

--- 311 unchanged lines hidden (view full) ---

321 fileid = 1;
322 } else {
323 fileid = (uint64_t)cntobn(pmp, dep->de_dirclust) *
324 dirsperblk;
325 if (dep->de_dirclust == MSDOSFSROOT)
326 fileid = (uint64_t)roottobn(pmp, 0) * dirsperblk;
327 fileid += (uint64_t)dep->de_diroffset / sizeof(struct direntry);
328 }
329#ifdef MSDOSFS_LARGE
330 vap->va_fileid = msdosfs_fileno_map(pmp->pm_mountp, fileid);
331#else
332 vap->va_fileid = (long)fileid;
333#endif
334 if ((dep->de_Attributes & ATTR_READONLY) == 0)
335 mode = S_IRWXU|S_IRWXG|S_IRWXO;
336 else
337 mode = S_IRUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH;
338 vap->va_mode = mode &
339 (ap->a_vp->v_type == VDIR ? pmp->pm_dirmask : pmp->pm_mask);
340 vap->va_uid = pmp->pm_uid;
341 vap->va_gid = pmp->pm_gid;

--- 1224 unchanged lines hidden (view full) ---

1566 for (n = (int)offset / sizeof(struct direntry);
1567 n < 2; n++) {
1568 if (FAT32(pmp))
1569 fileno = (uint64_t)cntobn(pmp,
1570 pmp->pm_rootdirblk)
1571 * dirsperblk;
1572 else
1573 fileno = 1;
1574#ifdef MSDOSFS_LARGE
1575 dirbuf.d_fileno = msdosfs_fileno_map(
1576 pmp->pm_mountp, fileno);
1577#else
1578 dirbuf.d_fileno = (uint32_t)fileno;
1579#endif
1580 dirbuf.d_type = DT_DIR;
1581 switch (n) {
1582 case 0:
1583 dirbuf.d_namlen = 1;
1584 strcpy(dirbuf.d_name, ".");
1585 break;
1586 case 1:
1587 dirbuf.d_namlen = 2;

--- 107 unchanged lines hidden (view full) ---

1695 else
1696 fileno = (uint64_t)cntobn(pmp, fileno) *
1697 dirsperblk;
1698 dirbuf.d_type = DT_DIR;
1699 } else {
1700 fileno = (uint64_t)offset / sizeof(struct direntry);
1701 dirbuf.d_type = DT_REG;
1702 }
1703#ifdef MSDOSFS_LARGE
1704 dirbuf.d_fileno = msdosfs_fileno_map(pmp->pm_mountp,
1705 fileno);
1706#else
1707 dirbuf.d_fileno = (uint32_t)fileno;
1708#endif
1709 if (chksum != winChksum(dentp)) {
1710 dirbuf.d_namlen = dos2unixfn(dentp->deName,
1711 (u_char *)dirbuf.d_name,
1712 dentp->deLowerCase |
1713 ((pmp->pm_flags & MSDOSFSMNT_SHORTNAME) ?
1714 (LCASE_BASE | LCASE_EXT) : 0),
1715 pmp);
1716 mbnambuf_init();

--- 220 unchanged lines hidden ---