Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:
quota: Fix possible dq_flags corruption
quota: Hide warnings about writes to the filesystem before quota was turned on
ext3: symlink must be handled via filesystem specific operation
ext2: symlink must be handled via filesystem specific operation

+16 -6
+2
fs/ext2/symlink.c
··· 32 32 .readlink = generic_readlink, 33 33 .follow_link = page_follow_link_light, 34 34 .put_link = page_put_link, 35 + .setattr = ext2_setattr, 35 36 #ifdef CONFIG_EXT2_FS_XATTR 36 37 .setxattr = generic_setxattr, 37 38 .getxattr = generic_getxattr, ··· 44 43 const struct inode_operations ext2_fast_symlink_inode_operations = { 45 44 .readlink = generic_readlink, 46 45 .follow_link = ext2_follow_link, 46 + .setattr = ext2_setattr, 47 47 #ifdef CONFIG_EXT2_FS_XATTR 48 48 .setxattr = generic_setxattr, 49 49 .getxattr = generic_getxattr,
+2
fs/ext3/symlink.c
··· 34 34 .readlink = generic_readlink, 35 35 .follow_link = page_follow_link_light, 36 36 .put_link = page_put_link, 37 + .setattr = ext3_setattr, 37 38 #ifdef CONFIG_EXT3_FS_XATTR 38 39 .setxattr = generic_setxattr, 39 40 .getxattr = generic_getxattr, ··· 46 45 const struct inode_operations ext3_fast_symlink_inode_operations = { 47 46 .readlink = generic_readlink, 48 47 .follow_link = ext3_follow_link, 48 + .setattr = ext3_setattr, 49 49 #ifdef CONFIG_EXT3_FS_XATTR 50 50 .setxattr = generic_setxattr, 51 51 .getxattr = generic_getxattr,
+12 -6
fs/quota/dquot.c
··· 874 874 static void add_dquot_ref(struct super_block *sb, int type) 875 875 { 876 876 struct inode *inode, *old_inode = NULL; 877 + #ifdef __DQUOT_PARANOIA 877 878 int reserved = 0; 879 + #endif 878 880 879 881 spin_lock(&inode_lock); 880 882 list_for_each_entry(inode, &sb->s_inodes, i_sb_list) { 881 883 if (inode->i_state & (I_FREEING|I_CLEAR|I_WILL_FREE|I_NEW)) 882 884 continue; 885 + #ifdef __DQUOT_PARANOIA 883 886 if (unlikely(inode_get_rsv_space(inode) > 0)) 884 887 reserved = 1; 888 + #endif 885 889 if (!atomic_read(&inode->i_writecount)) 886 890 continue; 887 891 if (!dqinit_needed(inode, type)) ··· 907 903 spin_unlock(&inode_lock); 908 904 iput(old_inode); 909 905 906 + #ifdef __DQUOT_PARANOIA 910 907 if (reserved) { 911 908 printk(KERN_WARNING "VFS (%s): Writes happened before quota" 912 909 " was turned on thus quota information is probably " 913 910 "inconsistent. Please run quotacheck(8).\n", sb->s_id); 914 911 } 912 + #endif 915 913 } 916 914 917 915 /* ··· 2328 2322 if (di->dqb_valid & QIF_SPACE) { 2329 2323 dm->dqb_curspace = di->dqb_curspace - dm->dqb_rsvspace; 2330 2324 check_blim = 1; 2331 - __set_bit(DQ_LASTSET_B + QIF_SPACE_B, &dquot->dq_flags); 2325 + set_bit(DQ_LASTSET_B + QIF_SPACE_B, &dquot->dq_flags); 2332 2326 } 2333 2327 if (di->dqb_valid & QIF_BLIMITS) { 2334 2328 dm->dqb_bsoftlimit = qbtos(di->dqb_bsoftlimit); 2335 2329 dm->dqb_bhardlimit = qbtos(di->dqb_bhardlimit); 2336 2330 check_blim = 1; 2337 - __set_bit(DQ_LASTSET_B + QIF_BLIMITS_B, &dquot->dq_flags); 2331 + set_bit(DQ_LASTSET_B + QIF_BLIMITS_B, &dquot->dq_flags); 2338 2332 } 2339 2333 if (di->dqb_valid & QIF_INODES) { 2340 2334 dm->dqb_curinodes = di->dqb_curinodes; 2341 2335 check_ilim = 1; 2342 - __set_bit(DQ_LASTSET_B + QIF_INODES_B, &dquot->dq_flags); 2336 + set_bit(DQ_LASTSET_B + QIF_INODES_B, &dquot->dq_flags); 2343 2337 } 2344 2338 if (di->dqb_valid & QIF_ILIMITS) { 2345 2339 dm->dqb_isoftlimit = di->dqb_isoftlimit; 2346 2340 dm->dqb_ihardlimit = di->dqb_ihardlimit; 2347 2341 check_ilim = 1; 2348 - __set_bit(DQ_LASTSET_B + QIF_ILIMITS_B, &dquot->dq_flags); 2342 + set_bit(DQ_LASTSET_B + QIF_ILIMITS_B, &dquot->dq_flags); 2349 2343 } 2350 2344 if (di->dqb_valid & QIF_BTIME) { 2351 2345 dm->dqb_btime = di->dqb_btime; 2352 2346 check_blim = 1; 2353 - __set_bit(DQ_LASTSET_B + QIF_BTIME_B, &dquot->dq_flags); 2347 + set_bit(DQ_LASTSET_B + QIF_BTIME_B, &dquot->dq_flags); 2354 2348 } 2355 2349 if (di->dqb_valid & QIF_ITIME) { 2356 2350 dm->dqb_itime = di->dqb_itime; 2357 2351 check_ilim = 1; 2358 - __set_bit(DQ_LASTSET_B + QIF_ITIME_B, &dquot->dq_flags); 2352 + set_bit(DQ_LASTSET_B + QIF_ITIME_B, &dquot->dq_flags); 2359 2353 } 2360 2354 2361 2355 if (check_blim) {