X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Faffs%2Finode.c;h=44d439cb69f491a2dc7b5012c014ae429de4c0fb;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=3142f402e659e72e935efca6493f52c034291168;hpb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;p=linux-2.6.git diff --git a/fs/affs/inode.c b/fs/affs/inode.c index 3142f402e..44d439cb6 100644 --- a/fs/affs/inode.c +++ b/fs/affs/inode.c @@ -10,26 +10,7 @@ * (C) 1991 Linus Torvalds - minix filesystem */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "affs.h" extern struct inode_operations affs_symlink_inode_operations; extern struct timezone sys_tz; @@ -263,10 +244,10 @@ affs_put_inode(struct inode *inode) pr_debug("AFFS: put_inode(ino=%lu, nlink=%u)\n", inode->i_ino, inode->i_nlink); affs_free_prealloc(inode); if (atomic_read(&inode->i_count) == 1) { - down(&inode->i_sem); + mutex_lock(&inode->i_mutex); if (inode->i_size != AFFS_I(inode)->mmu_private) affs_truncate(inode); - up(&inode->i_sem); + mutex_unlock(&inode->i_mutex); } } @@ -274,6 +255,7 @@ void affs_delete_inode(struct inode *inode) { pr_debug("AFFS: delete_inode(ino=%lu, nlink=%u)\n", inode->i_ino, inode->i_nlink); + truncate_inode_pages(&inode->i_data, 0); inode->i_size = 0; if (S_ISREG(inode->i_mode)) affs_truncate(inode); @@ -322,7 +304,7 @@ affs_new_inode(struct inode *dir) inode->i_gid = current->fsgid; inode->i_ino = block; inode->i_nlink = 1; - inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; + inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC; AFFS_I(inode)->i_opencnt = 0; AFFS_I(inode)->i_blkcnt = 0; AFFS_I(inode)->i_lc = NULL; @@ -428,4 +410,3 @@ err: affs_unlock_link(inode); goto done; } -MODULE_LICENSE("GPL");