X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fudf%2Finode.c;fp=fs%2Fudf%2Finode.c;h=d04cff2273b681a9944f3a319af83114340341cb;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=b223b32db991c4a1d3b4dbb225e0217733ec4dcd;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/fs/udf/inode.c b/fs/udf/inode.c index b223b32db..d04cff227 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -132,7 +132,7 @@ static sector_t udf_bmap(struct address_space *mapping, sector_t block) return generic_block_bmap(mapping,block,udf_get_block); } -const struct address_space_operations udf_aops = { +struct address_space_operations udf_aops = { .readpage = udf_readpage, .writepage = udf_writepage, .sync_page = block_sync_page, @@ -312,10 +312,12 @@ static int udf_get_block(struct inode *inode, sector_t block, struct buffer_head err = 0; bh = inode_getblk(inode, block, &err, &phys, &new); - BUG_ON(bh); + if (bh) + BUG(); if (err) goto abort; - BUG_ON(!phys); + if (!phys) + BUG(); if (new) set_buffer_new(bh_result); @@ -916,6 +918,8 @@ __udf_read_inode(struct inode *inode) * i_nlink = 1 * i_op = NULL; */ + inode->i_blksize = PAGE_SIZE; + bh = udf_read_ptagged(inode->i_sb, UDF_I_LOCATION(inode), 0, &ident); if (!bh) @@ -1337,11 +1341,13 @@ udf_update_inode(struct inode *inode, int do_sync) if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_UID_FORGET)) fe->uid = cpu_to_le32(-1); - else fe->uid = cpu_to_le32(inode->i_uid); + else if (inode->i_uid != UDF_SB(inode->i_sb)->s_uid) + fe->uid = cpu_to_le32(inode->i_uid); if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_GID_FORGET)) fe->gid = cpu_to_le32(-1); - else fe->gid = cpu_to_le32(inode->i_gid); + else if (inode->i_gid != UDF_SB(inode->i_sb)->s_gid) + fe->gid = cpu_to_le32(inode->i_gid); udfperms = ((inode->i_mode & S_IRWXO) ) | ((inode->i_mode & S_IRWXG) << 2) |