summaryrefslogtreecommitdiffstats
path: root/fs/udf
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-04-19 04:00:00 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-04-19 04:00:00 +0000
commit46e045034336a2cc90c1798cd7cc07af744ddfd6 (patch)
tree3b9b51fc482e729f663d25333e77fbed9aaa939a /fs/udf
parent31dc59d503a02e84c4de98826452acaeb56dc15a (diff)
Merge with Linux 2.3.99-pre4.
Diffstat (limited to 'fs/udf')
-rw-r--r--fs/udf/file.c2
-rw-r--r--fs/udf/inode.c10
2 files changed, 5 insertions, 7 deletions
diff --git a/fs/udf/file.c b/fs/udf/file.c
index 96297521b..cbaf77929 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -315,7 +315,7 @@ static int udf_release_file(struct inode * inode, struct file * filp)
*/
static int udf_open_file(struct inode * inode, struct file * filp)
{
- if ((inode->i_size & 0xFFFFFFFF00000000UL) && !(filp->f_flags & O_LARGEFILE))
+ if ((inode->i_size & 0xFFFFFFFF00000000ULL) && !(filp->f_flags & O_LARGEFILE))
return -EFBIG;
return 0;
}
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index ed1507fa7..b0a9c42c0 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -78,7 +78,9 @@ void udf_put_inode(struct inode * inode)
{
lock_kernel();
udf_discard_prealloc(inode);
- write_inode_now(inode);
+ /* write the root inode on put, if dirty */
+ if (!inode->i_sb->s_root && inode->i_state & I_DIRTY)
+ udf_update_inode(inode, IS_SYNC(inode));
unlock_kernel();
}
}
@@ -111,7 +113,7 @@ void udf_delete_inode(struct inode * inode)
inode->i_size = 0;
udf_truncate(inode);
- write_inode_now(inode);
+ udf_update_inode(inode, IS_SYNC(inode));
udf_free_inode(inode);
out:
unlock_kernel();
@@ -1005,10 +1007,6 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
inode->i_nlink = 1;
inode->i_size = le64_to_cpu(fe->informationLength);
-#if BITS_PER_LONG < 64
- if (le64_to_cpu(fe->informationLength) & 0xFFFFFFFF00000000ULL)
- inode->i_size = (Uint32)-1;
-#endif
inode->i_mode = udf_convert_permissions(fe);
inode->i_mode &= ~UDF_SB(inode->i_sb)->s_umask;