From 27bb89cae1363273bfcf3495edf8e84017b59ea9 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Mon, 18 Jan 2010 22:49:33 +0000 Subject: [PATCH] BFS needs to also allocate a file cache when dealing with a long symlink inode. Fixes ticket #5282. Axel and/or Ingo, please review. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35147 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/Inode.cpp | 2 +- src/add-ons/kernel/file_systems/bfs/Inode.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/bfs/Inode.cpp b/src/add-ons/kernel/file_systems/bfs/Inode.cpp index d8d83428f6..955fa64852 100644 --- a/src/add-ons/kernel/file_systems/bfs/Inode.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Inode.cpp @@ -344,7 +344,7 @@ Inode::Inode(Volume* volume, ino_t id) if (IsContainer()) fTree = new BPlusTree(this); - if (IsFile() || IsAttribute()) { + if (IsFile() || IsAttribute() || IsLongSymLink()) { SetFileCache(file_cache_create(fVolume->ID(), ID(), Size())); SetMap(file_map_create(volume->ID(), ID(), Size())); } diff --git a/src/add-ons/kernel/file_systems/bfs/Inode.h b/src/add-ons/kernel/file_systems/bfs/Inode.h index 6ef5ef3159..ce2e9fddb8 100644 --- a/src/add-ons/kernel/file_systems/bfs/Inode.h +++ b/src/add-ons/kernel/file_systems/bfs/Inode.h @@ -73,6 +73,8 @@ public: bool IsDeleted() const { return (Flags() & INODE_DELETED) != 0; } + bool IsLongSymLink() const + { return (Flags() & INODE_LONG_SYMLINK) != 0; } mode_t Mode() const { return fNode.Mode(); } uint32 Type() const { return fNode.Type(); }