]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * linux/fs/hfs/sysdep.c | |
3 | * | |
4 | * Copyright (C) 1996 Paul H. Hargrove | |
5 | * (C) 2003 Ardis Technologies <[email protected]> | |
6 | * This file may be distributed under the terms of the GNU General Public License. | |
7 | * | |
8 | * This file contains the code to do various system dependent things. | |
9 | */ | |
10 | ||
34286d66 | 11 | #include <linux/namei.h> |
1da177e4 LT |
12 | #include "hfs_fs.h" |
13 | ||
14 | /* dentry case-handling: just lowercase everything */ | |
15 | ||
16 | static int hfs_revalidate_dentry(struct dentry *dentry, struct nameidata *nd) | |
17 | { | |
34286d66 | 18 | struct inode *inode; |
1da177e4 LT |
19 | int diff; |
20 | ||
34286d66 NP |
21 | if (nd->flags & LOOKUP_RCU) |
22 | return -ECHILD; | |
23 | ||
24 | inode = dentry->d_inode; | |
1da177e4 LT |
25 | if(!inode) |
26 | return 1; | |
27 | ||
28 | /* fix up inode on a timezone change */ | |
29 | diff = sys_tz.tz_minuteswest * 60 - HFS_I(inode)->tz_secondswest; | |
30 | if (diff) { | |
31 | inode->i_ctime.tv_sec += diff; | |
32 | inode->i_atime.tv_sec += diff; | |
33 | inode->i_mtime.tv_sec += diff; | |
34 | HFS_I(inode)->tz_secondswest += diff; | |
35 | } | |
36 | return 1; | |
37 | } | |
38 | ||
e16404ed | 39 | const struct dentry_operations hfs_dentry_operations = |
1da177e4 LT |
40 | { |
41 | .d_revalidate = hfs_revalidate_dentry, | |
42 | .d_hash = hfs_hash_dentry, | |
43 | .d_compare = hfs_compare_dentry, | |
44 | }; | |
45 |