Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 91817
b: refs/heads/master
c: 1ab9278
h: refs/heads/master
i:
  91815: c547838
v: v3
  • Loading branch information
marcin.slusarz@gmail.com authored and Jan Kara committed Apr 17, 2008
1 parent 81a1e8a commit 53a827e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 30 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c2104fda5e6a6981e385b2d11c5c591ab06d82a2
refs/heads/master: 1ab9278570077101d1e367399686be62b22c4019
52 changes: 23 additions & 29 deletions trunk/fs/udf/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1101,42 +1101,36 @@ static void __udf_read_inode(struct inode *inode)
fe = (struct fileEntry *)bh->b_data;

if (fe->icbTag.strategyType == cpu_to_le16(4096)) {
struct buffer_head *ibh = NULL, *nbh = NULL;
struct indirectEntry *ie;
struct buffer_head *ibh;

ibh = udf_read_ptagged(inode->i_sb, iinfo->i_location, 1,
&ident);
if (ident == TAG_IDENT_IE) {
if (ibh) {
kernel_lb_addr loc;
ie = (struct indirectEntry *)ibh->b_data;

loc = lelb_to_cpu(ie->indirectICB.extLocation);

if (ie->indirectICB.extLength &&
(nbh = udf_read_ptagged(inode->i_sb, loc, 0,
&ident))) {
if (ident == TAG_IDENT_FE ||
ident == TAG_IDENT_EFE) {
memcpy(&iinfo->i_location,
&loc,
sizeof(kernel_lb_addr));
brelse(bh);
brelse(ibh);
brelse(nbh);
__udf_read_inode(inode);
return;
} else {
brelse(nbh);
brelse(ibh);
}
} else {
if (ident == TAG_IDENT_IE && ibh) {
struct buffer_head *nbh = NULL;
kernel_lb_addr loc;
struct indirectEntry *ie;

ie = (struct indirectEntry *)ibh->b_data;
loc = lelb_to_cpu(ie->indirectICB.extLocation);

if (ie->indirectICB.extLength &&
(nbh = udf_read_ptagged(inode->i_sb, loc, 0,
&ident))) {
if (ident == TAG_IDENT_FE ||
ident == TAG_IDENT_EFE) {
memcpy(&iinfo->i_location,
&loc,
sizeof(kernel_lb_addr));
brelse(bh);
brelse(ibh);
brelse(nbh);
__udf_read_inode(inode);
return;
}
brelse(nbh);
}
} else {
brelse(ibh);
}
brelse(ibh);
} else if (fe->icbTag.strategyType != cpu_to_le16(4)) {
printk(KERN_ERR "udf: unsupported strategy type: %d\n",
le16_to_cpu(fe->icbTag.strategyType));
Expand Down

0 comments on commit 53a827e

Please sign in to comment.