linux/fs/hfs/sysdep.c
<<
>>
Prefs
   1/*
   2 *  linux/fs/hfs/sysdep.c
   3 *
   4 * Copyright (C) 1996  Paul H. Hargrove
   5 * (C) 2003 Ardis Technologies <roman@ardistech.com>
   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
  11#include <linux/namei.h>
  12#include "hfs_fs.h"
  13
  14/* dentry case-handling: just lowercase everything */
  15
  16static int hfs_revalidate_dentry(struct dentry *dentry, unsigned int flags)
  17{
  18        struct inode *inode;
  19        int diff;
  20
  21        if (flags & LOOKUP_RCU)
  22                return -ECHILD;
  23
  24        inode = d_inode(dentry);
  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
  39const struct dentry_operations hfs_dentry_operations =
  40{
  41        .d_revalidate   = hfs_revalidate_dentry,
  42        .d_hash         = hfs_hash_dentry,
  43        .d_compare      = hfs_compare_dentry,
  44};
  45
  46