patch-2.4.27 linux-2.4.27/fs/xfs/xfs_vnodeops.c
Next file: linux-2.4.27/include/asm-i386/acpi.h
Previous file: linux-2.4.27/fs/xfs/xfs_vfsops.c
Back to the patch index
Back to the overall index
- Lines: 97
- Date:
2004-08-07 16:26:06.152408330 -0700
- Orig file:
linux-2.4.26/fs/xfs/xfs_vnodeops.c
- Orig date:
2004-04-14 06:05:40.000000000 -0700
diff -urN linux-2.4.26/fs/xfs/xfs_vnodeops.c linux-2.4.27/fs/xfs/xfs_vnodeops.c
@@ -246,25 +246,10 @@
goto all_done;
/*
- * convert di_flags to xflags
+ * Convert di_flags to xflags.
*/
- vap->va_xflags = 0;
- if (ip->i_d.di_flags & XFS_DIFLAG_REALTIME)
- vap->va_xflags |= XFS_XFLAG_REALTIME;
- if (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC)
- vap->va_xflags |= XFS_XFLAG_PREALLOC;
- if (ip->i_d.di_flags & XFS_DIFLAG_IMMUTABLE)
- vap->va_xflags |= XFS_XFLAG_IMMUTABLE;
- if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
- vap->va_xflags |= XFS_XFLAG_APPEND;
- if (ip->i_d.di_flags & XFS_DIFLAG_SYNC)
- vap->va_xflags |= XFS_XFLAG_SYNC;
- if (ip->i_d.di_flags & XFS_DIFLAG_NOATIME)
- vap->va_xflags |= XFS_XFLAG_NOATIME;
- if (ip->i_d.di_flags & XFS_DIFLAG_NODUMP)
- vap->va_xflags |= XFS_XFLAG_NODUMP;
- if (XFS_IFORK_Q(ip))
- vap->va_xflags |= XFS_XFLAG_HASATTR;
+ vap->va_xflags = xfs_dic2xflags(&ip->i_d, ARCH_NOCONVERT);
+
/*
* Exit for inode revalidate. See if any of the rest of
* the fields to be filled in are needed.
@@ -426,11 +411,6 @@
xfs_ilock(ip, lock_flags);
- if (_MAC_XFS_IACCESS(ip, MACWRITE, credp)) {
- code = XFS_ERROR(EACCES);
- goto error_return;
- }
-
/* boolean: are we the file owner? */
file_owner = (current_fsuid(credp) == ip->i_d.di_uid);
@@ -680,18 +660,12 @@
* once it is a part of the transaction.
*/
if (mask & XFS_AT_SIZE) {
- if (vap->va_size > ip->i_d.di_size) {
+ code = 0;
+ if (vap->va_size > ip->i_d.di_size)
code = xfs_igrow_start(ip, vap->va_size, credp);
- xfs_iunlock(ip, XFS_ILOCK_EXCL);
- } else if (vap->va_size <= ip->i_d.di_size) {
- xfs_iunlock(ip, XFS_ILOCK_EXCL);
- xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE,
- (xfs_fsize_t)vap->va_size);
- code = 0;
- } else {
- xfs_iunlock(ip, XFS_ILOCK_EXCL);
- code = 0;
- }
+ xfs_iunlock(ip, XFS_ILOCK_EXCL);
+ if (!code)
+ code = xfs_itruncate_data(ip, vap->va_size);
if (code) {
ASSERT(tp == NULL);
lock_flags &= ~XFS_ILOCK_EXCL;
@@ -2467,11 +2441,6 @@
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
}
- if ((error = _MAC_XFS_IACCESS(ip, MACWRITE, credp))) {
- REMOVE_DEBUG_TRACE(__LINE__);
- goto error_return;
- }
-
/*
* Entry must exist since we did a lookup in xfs_lock_dir_and_entry.
*/
@@ -2557,8 +2526,6 @@
error1:
xfs_bmap_cancel(&free_list);
cancel_flags |= XFS_TRANS_ABORT;
-
- error_return:
xfs_trans_cancel(tp, cancel_flags);
goto std_return;
@@ -3126,10 +3093,6 @@
ITRACE(cdp);
xfs_trans_ijoin(tp, cdp, XFS_ILOCK_EXCL);
- if ((error = _MAC_XFS_IACCESS(cdp, MACWRITE, credp))) {
- goto error_return;
- }
-
ASSERT(cdp->i_d.di_nlink >= 2);
if (cdp->i_d.di_nlink != 2) {
error = XFS_ERROR(ENOTEMPTY);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)