resize.c (5b805f2a7675634fbdf9ac1c9b2256905ab2ea68) resize.c (37be2f59d3149b95afaeeeff94edde2c07f165d2)
1/*
2 * linux/fs/ext4/resize.c
3 *
4 * Support for resizing an ext4 filesystem while it is mounted.
5 *
6 * Copyright (C) 2001, 2002 Andreas Dilger <adilger@clusterfs.com>
7 *
8 * This could probably be made into a module, because it is not often in use.

--- 769 unchanged lines hidden (view full) ---

778 }
779
780 err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
781 if (unlikely(err))
782 goto exit_dind;
783
784 err = ext4_journal_get_write_access(handle, gdb_bh);
785 if (unlikely(err))
1/*
2 * linux/fs/ext4/resize.c
3 *
4 * Support for resizing an ext4 filesystem while it is mounted.
5 *
6 * Copyright (C) 2001, 2002 Andreas Dilger <adilger@clusterfs.com>
7 *
8 * This could probably be made into a module, because it is not often in use.

--- 769 unchanged lines hidden (view full) ---

778 }
779
780 err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
781 if (unlikely(err))
782 goto exit_dind;
783
784 err = ext4_journal_get_write_access(handle, gdb_bh);
785 if (unlikely(err))
786 goto exit_sbh;
786 goto exit_dind;
787
788 err = ext4_journal_get_write_access(handle, dind);
789 if (unlikely(err))
790 ext4_std_error(sb, err);
791
792 /* ext4_reserve_inode_write() gets a reference on the iloc */
793 err = ext4_reserve_inode_write(handle, inode, &iloc);
794 if (unlikely(err))
787
788 err = ext4_journal_get_write_access(handle, dind);
789 if (unlikely(err))
790 ext4_std_error(sb, err);
791
792 /* ext4_reserve_inode_write() gets a reference on the iloc */
793 err = ext4_reserve_inode_write(handle, inode, &iloc);
794 if (unlikely(err))
795 goto exit_dindj;
795 goto exit_dind;
796
797 n_group_desc = ext4_kvmalloc((gdb_num + 1) *
798 sizeof(struct buffer_head *),
799 GFP_NOFS);
800 if (!n_group_desc) {
801 err = -ENOMEM;
802 ext4_warning(sb, "not enough memory for %lu groups",
803 gdb_num + 1);

--- 37 unchanged lines hidden (view full) ---

841 err = ext4_handle_dirty_super(handle, sb);
842 if (err)
843 ext4_std_error(sb, err);
844
845 return err;
846
847exit_inode:
848 ext4_kvfree(n_group_desc);
796
797 n_group_desc = ext4_kvmalloc((gdb_num + 1) *
798 sizeof(struct buffer_head *),
799 GFP_NOFS);
800 if (!n_group_desc) {
801 err = -ENOMEM;
802 ext4_warning(sb, "not enough memory for %lu groups",
803 gdb_num + 1);

--- 37 unchanged lines hidden (view full) ---

841 err = ext4_handle_dirty_super(handle, sb);
842 if (err)
843 ext4_std_error(sb, err);
844
845 return err;
846
847exit_inode:
848 ext4_kvfree(n_group_desc);
849 /* ext4_handle_release_buffer(handle, iloc.bh); */
850 brelse(iloc.bh);
849 brelse(iloc.bh);
851exit_dindj:
852 /* ext4_handle_release_buffer(handle, dind); */
853exit_sbh:
854 /* ext4_handle_release_buffer(handle, EXT4_SB(sb)->s_sbh); */
855exit_dind:
856 brelse(dind);
857exit_bh:
858 brelse(gdb_bh);
859
860 ext4_debug("leaving with error %d\n", err);
861 return err;
862}

--- 101 unchanged lines hidden (view full) ---

964 err = gdbackups;
965 goto exit_bh;
966 }
967 if (++data >= end)
968 data = (__le32 *)dind->b_data;
969 }
970
971 for (i = 0; i < reserved_gdb; i++) {
850exit_dind:
851 brelse(dind);
852exit_bh:
853 brelse(gdb_bh);
854
855 ext4_debug("leaving with error %d\n", err);
856 return err;
857}

--- 101 unchanged lines hidden (view full) ---

959 err = gdbackups;
960 goto exit_bh;
961 }
962 if (++data >= end)
963 data = (__le32 *)dind->b_data;
964 }
965
966 for (i = 0; i < reserved_gdb; i++) {
972 if ((err = ext4_journal_get_write_access(handle, primary[i]))) {
973 /*
974 int j;
975 for (j = 0; j < i; j++)
976 ext4_handle_release_buffer(handle, primary[j]);
977 */
967 if ((err = ext4_journal_get_write_access(handle, primary[i])))
978 goto exit_bh;
968 goto exit_bh;
979 }
980 }
981
982 if ((err = ext4_reserve_inode_write(handle, inode, &iloc)))
983 goto exit_bh;
984
985 /*
986 * Finally we can add each of the reserved backup GDT blocks from
987 * the new group to its reserved primary GDT block.

--- 1013 unchanged lines hidden ---
969 }
970
971 if ((err = ext4_reserve_inode_write(handle, inode, &iloc)))
972 goto exit_bh;
973
974 /*
975 * Finally we can add each of the reserved backup GDT blocks from
976 * the new group to its reserved primary GDT block.

--- 1013 unchanged lines hidden ---