X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=fs%2Fudf%2Fsymlink.c;h=c3265e1385d43c5c6ed0e2960cf9d83a72493e4a;hb=068f5ae05c51d2cee6b31cb3da06775dd83bd348;hp=e6f933dd6a7b9929440a781903ea11a4192698f8;hpb=d7fff6f4d1ed1bc31577df887fefcb1541923367;p=linux-2.6-omap-h63xx.git diff --git a/fs/udf/symlink.c b/fs/udf/symlink.c index e6f933dd6a7..c3265e1385d 100644 --- a/fs/udf/symlink.c +++ b/fs/udf/symlink.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -33,7 +32,8 @@ #include #include "udf_i.h" -static void udf_pc_to_char(struct super_block *sb, char *from, int fromlen, char *to) +static void udf_pc_to_char(struct super_block *sb, char *from, int fromlen, + char *to) { struct pathComponent *pc; int elen = 0; @@ -78,10 +78,12 @@ static int udf_symlink_filler(struct file *file, struct page *page) char *symlink; int err = -EIO; char *p = kmap(page); + struct udf_inode_info *iinfo; lock_kernel(); - if (UDF_I_ALLOCTYPE(inode) == ICBTAG_FLAG_AD_IN_ICB) { - symlink = UDF_I_DATA(inode) + UDF_I_LENEATTR(inode); + iinfo = UDF_I(inode); + if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) { + symlink = iinfo->i_ext.i_data + iinfo->i_lenEAttr; } else { bh = sb_bread(inode->i_sb, udf_block_map(inode, 0));