dir.c (42249094f79422fbf5ed4b54eeb48ff096809b8f) | dir.c (5955102c9984fa081b2d570cfac75c97eecf8f3b) |
---|---|
1/** 2 * dir.c - NTFS kernel directory operations. Part of the Linux-NTFS project. 3 * 4 * Copyright (c) 2001-2007 Anton Altaparmakov 5 * Copyright (c) 2002 Richard Russon 6 * 7 * This program/include file is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as published --- 1495 unchanged lines hidden (view full) --- 1504 int err, ret; 1505 ntfs_attr na; 1506 1507 ntfs_debug("Entering for inode 0x%lx.", vi->i_ino); 1508 1509 err = filemap_write_and_wait_range(vi->i_mapping, start, end); 1510 if (err) 1511 return err; | 1/** 2 * dir.c - NTFS kernel directory operations. Part of the Linux-NTFS project. 3 * 4 * Copyright (c) 2001-2007 Anton Altaparmakov 5 * Copyright (c) 2002 Richard Russon 6 * 7 * This program/include file is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as published --- 1495 unchanged lines hidden (view full) --- 1504 int err, ret; 1505 ntfs_attr na; 1506 1507 ntfs_debug("Entering for inode 0x%lx.", vi->i_ino); 1508 1509 err = filemap_write_and_wait_range(vi->i_mapping, start, end); 1510 if (err) 1511 return err; |
1512 mutex_lock(&vi->i_mutex); | 1512 inode_lock(vi); |
1513 1514 BUG_ON(!S_ISDIR(vi->i_mode)); 1515 /* If the bitmap attribute inode is in memory sync it, too. */ 1516 na.mft_no = vi->i_ino; 1517 na.type = AT_BITMAP; 1518 na.name = I30; 1519 na.name_len = 4; 1520 bmp_vi = ilookup5(vi->i_sb, vi->i_ino, (test_t)ntfs_test_inode, &na); --- 6 unchanged lines hidden (view full) --- 1527 err = sync_blockdev(vi->i_sb->s_bdev); 1528 if (unlikely(err && !ret)) 1529 ret = err; 1530 if (likely(!ret)) 1531 ntfs_debug("Done."); 1532 else 1533 ntfs_warning(vi->i_sb, "Failed to f%ssync inode 0x%lx. Error " 1534 "%u.", datasync ? "data" : "", vi->i_ino, -ret); | 1513 1514 BUG_ON(!S_ISDIR(vi->i_mode)); 1515 /* If the bitmap attribute inode is in memory sync it, too. */ 1516 na.mft_no = vi->i_ino; 1517 na.type = AT_BITMAP; 1518 na.name = I30; 1519 na.name_len = 4; 1520 bmp_vi = ilookup5(vi->i_sb, vi->i_ino, (test_t)ntfs_test_inode, &na); --- 6 unchanged lines hidden (view full) --- 1527 err = sync_blockdev(vi->i_sb->s_bdev); 1528 if (unlikely(err && !ret)) 1529 ret = err; 1530 if (likely(!ret)) 1531 ntfs_debug("Done."); 1532 else 1533 ntfs_warning(vi->i_sb, "Failed to f%ssync inode 0x%lx. Error " 1534 "%u.", datasync ? "data" : "", vi->i_ino, -ret); |
1535 mutex_unlock(&vi->i_mutex); | 1535 inode_unlock(vi); |
1536 return ret; 1537} 1538 1539#endif /* NTFS_RW */ 1540 1541const struct file_operations ntfs_dir_ops = { 1542 .llseek = generic_file_llseek, /* Seek inside directory. */ 1543 .read = generic_read_dir, /* Return -EISDIR. */ 1544 .iterate = ntfs_readdir, /* Read directory contents. */ 1545#ifdef NTFS_RW 1546 .fsync = ntfs_dir_fsync, /* Sync a directory to disk. */ 1547 /*.aio_fsync = ,*/ /* Sync all outstanding async 1548 i/o operations on a kiocb. */ 1549#endif /* NTFS_RW */ 1550 /*.ioctl = ,*/ /* Perform function on the 1551 mounted filesystem. */ 1552 .open = ntfs_dir_open, /* Open directory. */ 1553}; | 1536 return ret; 1537} 1538 1539#endif /* NTFS_RW */ 1540 1541const struct file_operations ntfs_dir_ops = { 1542 .llseek = generic_file_llseek, /* Seek inside directory. */ 1543 .read = generic_read_dir, /* Return -EISDIR. */ 1544 .iterate = ntfs_readdir, /* Read directory contents. */ 1545#ifdef NTFS_RW 1546 .fsync = ntfs_dir_fsync, /* Sync a directory to disk. */ 1547 /*.aio_fsync = ,*/ /* Sync all outstanding async 1548 i/o operations on a kiocb. */ 1549#endif /* NTFS_RW */ 1550 /*.ioctl = ,*/ /* Perform function on the 1551 mounted filesystem. */ 1552 .open = ntfs_dir_open, /* Open directory. */ 1553}; |