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};